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

时间:2016-01-18 17:13:35

标签: c# asp.net-mvc-4 email azure sendgrid

我无法在Azure上配置的MVC4 Web App上发送电子邮件。我可以在我的机器上本地发送电子邮件,但是当我将代码上传到我在云中的azure应用程序时,邮件传递并没有说它失败了,但电子邮件没有发送,SendGrid没有报告邮件是在其仪表板上发送的。

是否有人遇到类似问题?在没有确切答案的情况下调查了类似的问题。

我确实按照本文(https://azure.microsoft.com/en-us/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");
}

1 个答案:

答案 0 :(得分:0)

试试这个:

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或更高版本。