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



每次出现某些异常时,我都尝试使用 SendGrid 从 Azure 辅助角色发送电子邮件,但我无法发送电子邮件。我正在使用SendGridMail版本6.1.0.0和SendGrid.SmtpApi版本1.3.1.0,我通过nuget和.Net 4.5安装。我目前正在本地调试,如果可以成功发送电子邮件,则计划部署到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之外,我没有收到任何错误。

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

To = 'header。To"抛出类型为"System.ArgumentException"消息的异常="错误的密钥路径!

有谁知道这意味着什么?或者,如果这可能导致电子邮件无法发送?

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

Azure 辅助角色中异常的警报

有三个全局变量:

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

实际上,无需使用 SDK,只需在 Azure 门户中设置帐户,并将信条保存在项目中即可。

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

它已部署到 Azure 才能工作。它在本地不起作用。

最新更新