2014-02-19 11 views
4

В настоящее время я использую C# в MVC4 ASP.NET 4.5.Ошибка запроса с использованием отправки электронной почты SendGrid SMTP

Мое приложение создает пользователя, а затем отправляет регистрационное письмо для использования для аутентификации своего электронного письма. Чтобы создать этот сценарий, я последовал за этот учебник: How to Send Email Using SendGrid with Windows Azure

Я использую последнюю версию SendGrid (2.1.1)

кодекса конкретных пространств имен используется:

using SendGridMail; 
using System.Net; 
using System.Net.Mail; 

Вот мой код, который создает сообщение электронной почты SendGrid :

SendGrid message = SendGrid.GetInstance(); 
message.From = new MailAddress(fromEmail); //fromEmail is a MailAddress type 
message.AddTo(userName); //this is a string 
message.Html = body; //this is also a string 

Тогда я иду, чтобы отправить сообщение:

//Create login info for email 
NetworkCredential credentials = new NetworkCredential("username", "password"); 
var trasnportSMTP = Web.GetInstance(credentials); 
trasnportSMTP.Deliver(message); //smtp.sendgrid.net Send message 

В последней строке, где «trasnportSMTP.Deliver (сообщение)»; Я получаю эту ошибку:

Server Error in '/' Application.

Bad Request

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Exception: Bad Request

Единственное, что я заметил, в то время как трассировка находится в Exception Snapshot ПОДРОБНОСТИ и окно Output.

Я заметил, что: TargetSite = {Недействительные CheckForErrors (System.Net.Http.HttpResponseMessage)}, ReturnType есть {Name = "Пустота" FullName = "System.Void"}, ReflectedType есть {Имя = "Web" FullName = "SendGridMail.Web"}, CustomAttributes - Count = 0, Name = "CheckForErrors", Он находится в модуле {SendGridMail.dll}.

Кроме того, в моем выходе, есть следующее: «Первый шанс исключение типа„System.FormatException“произошло в System.dll Шаг в: Перешагнув через код без абонентской SendGridMail.Web.Deliver»

Может ли кто-нибудь дать мне более подробную информацию о том, почему эта ошибка происходит. Я использую правильное имя пользователя и пароль, которые находятся в учетной записи SendGrid на Azure.

спасибо заранее.

+1

не быть умной задницей, но попробовать сверлить в трассировку стеки. – BlackICE

+0

См редактирует в нижней части, что я нашел, прослеживая и в выходное окно. – Termato

ответ

9

Попробуйте добавить тему в сообщение

message.Subject = "this is the subject"; 

Это должно сделать это, я столкнулся с той же проблемой, когда я играл с этой библиотекой.

+0

Вау ... Я не могу поверить, что это то, что я забыл. Спасибо! – Termato

+4

Ничего себе, это ужасно запутанно d для недостающего объекта. – BlackICE

+2

То же самое для пустого или пустого текста. – Jeff

1

Этот ответ помог мне (я использую Azure):

SendGrid Tutorial resulting in Bad Request

Вкратце: вам необходимо получить учетные данные через лазурь (подключить данные на рынке), вы можете использовать неверном из них.

0

Копайте документацию, если вам нужно использовать ключ, который выглядит как нечто ближе к «SG.asasfhiouce-JKIjjkvcdb_iouywerejkhwrnd»вы должны использовать точное слово„apikey“в качестве имени пользователя и этот ключ в качестве пароля

Если это не сработает, попробуйте добавить к заголовку„Authorization“со значением„Bearer API_KEY_ABOVE_AS_WELL“ так выглядит как

«Authorization» «Bearer SG.asasfhiouce-JKIjjkvcdb_iouywerejkhwrnd»

Смежные вопросы