Windows Azure 辅助角色和 SendGrid "Bad Key Path!" 错误

Windows Azure worker role and SendGrid "Bad Key Path!" Error

每次出现某些异常时,我都尝试使用 SendGrid 从 Azure 工作者角色发送电子邮件,但我无法发送电子邮件。我正在使用通过 nuget 和 .Net 4.5 安装的 SendGridMail 版本 6.1.0.0 和 SendGrid.SmtpApi 版本 1.3.1.0。我目前正在本地调试,并计划在我能够成功发送电子邮件时部署到 Azure。

SendGridMessage myMessage = new SendGridMessage();
List<String> recipients = new List<String> { @"John Doe <johnd@outlook.com>", @"Peter Howe <perterhowe@gmail.com>" };
myMessage.AddTo(recipients);
myMessage.From = new MailAddress("myemail@test.com");
myMessage.Subject = "Error in Update";
myMessage.Text = "TESTING 123";

string username = XXXXXX;

string password = XXXXXXX;
// Create credentials, specifying your user name and password.
var credentials = new NetworkCredential(username, password);

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

// Send the email.
await transportWeb.DeliverAsync(myMessage);

据我所知,我没有收到任何错误,除非我调试并查看 myMessage Header 有错误。

当我尝试初始化一个新的空 header (var header = new Header();) 时,我注意到它仍然存在错误

To = 'header.To' threw an exception of type 'System.ArgumentException' Message = "Bad key path!"

有人知道这是什么意思吗?或者这是否会导致电子邮件无法发送?

它已经部署到 Azure 上工作了。它在本地不起作用。

你另一个问题的答案实际上使用了 SendGrid:

共有三个全局变量:

public const string SmtpServerHost = "smtp.sendgrid.net";
public const string SmtpServerUserName = "[useridfromsendgrid@azure.com]";
public const string SmtpServerPassword = "[password from sendgrid]";

您其实不需要使用SDK,只需在Azure 门户中设置帐户,并将您的信用保存在您的项目中。

您可以在本地发送电子邮件,但如果您在工作网络中,防火墙可能会阻止发送电子邮件。我发布的代码放在我的命名空间中的电子邮件服务中。