我无法在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");
}
答案 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或更高版本。