无法使用Sendgrid在Azure Web App上发送电子邮件

最后发布: 2016-01-18 17:13:35


问题

我无法在Azure上配置的MVC4 Web应用程序上发送电子邮件。 我能够在本地计算机上发送电子邮件,但是当我将代码上传到云中的azure应用程序时,邮件传递不会说失败,但是邮件不会传递,SendGrid不会报告该邮件被发送到其仪表板上。

有人遇到过类似的问题吗? 研究了类似的问题,但没有确切的答案。

我确实遵循了本文( https://azure.microsoft.com/zh-cn/documentation/articles/sendgrid-dotnet-how-to-send-email/#reference )的说明,但未成功。 还尝试通过SendGrid类库并使用普通的System.Net.Mail发送电子邮件。

任何帮助表示赞赏。

码:

谢谢回复。 我正在使用Web.DeliverAsync,这是我正在使用的代码:

// Create network credentials to access your SendGrid account
var username = System.Configuration.ConfigurationManager.AppSettings["smtpUser"];
var pswd = System.Configuration.ConfigurationManager.AppSettings["smtpPass"];

var credentials = new NetworkCredential(username, pswd);

// Create an Web transport for sending email.
SendGrid.Web transportWeb = new SendGrid.Web(credentials);

//var apiKey = System.Configuration.ConfigurationManager.AppSettings["sendgrid_api_key"];
var apiKey = "apikey";
SendGridMessage msg = new SendGridMessage();

msg.Subject = "...";
msg.AddTo(model.Email);
msg.Html = body;
msg.From = new MailAddress("...");

try
{
await transportWeb.DeliverAsync(msg);
}
catch (Exception e)
{
  e.ToExceptionless().Submit();
  ViewBag.ErrorMsg = e.Message;
  return View("Error");
}
c# asp.net-mvc-4 email azure sendgrid
回答

尝试这个:

var apiKey = System.Configuration.ConfigurationManager.AppSettings["sendgrid_api_key"];

// Create an Web transport for sending email.
SendGrid.Web transportWeb = new SendGrid.Web(apiKey);

SendGridMessage msg = new SendGridMessage();

msg.Subject = "...";
msg.AddTo(model.Email);
msg.Html = body;
msg.From = new MailAddress("...");

try
{
  await transportWeb.DeliverAsync(msg);
}
catch (Exception e)
{
  //e.ToExceptionless().Submit();
  ViewBag.ErrorMsg = e.Message;
  return View("Error");
}

您还使用哪个版本的SendGrid C#库? 确保它是6.3.x或更高版本。