Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Azure工作人员角色和SendGrid“;密钥路径错误&引用;错误_Azure_Azure Worker Roles_Sendgrid - Fatal编程技术网

Windows Azure工作人员角色和SendGrid“;密钥路径错误&引用;错误

Windows Azure工作人员角色和SendGrid“;密钥路径错误&引用;错误,azure,azure-worker-roles,sendgrid,Azure,Azure Worker Roles,Sendgrid,每次出现某些异常时,我都尝试使用SendGrid从Azure worker角色发送电子邮件,但我无法获取要发送的电子邮件。我使用的是SendGridMail版本6.1.0.0和SendGrid.SmtpApi版本1.3.1.0,这两个版本是通过nuget和.Net 4.5安装的。我目前正在本地调试部署到Azure的计划,如果我能成功发送电子邮件的话 SendGridMessage myMessage = new SendGridMessage(); List<String> reci

每次出现某些异常时,我都尝试使用SendGrid从Azure worker角色发送电子邮件,但我无法获取要发送的电子邮件。我使用的是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);
SendGridMessage myMessage=new SendGridMessage();
名单接受者=新名单{“John Doe”,“Peter Howe”};
myMessage.AddTo(收件人);
myMessage.From=新邮件地址(“myemail@test.com");
myMessage.Subject=“更新时出错”;
myMessage.Text=“测试123”;
字符串用户名=XXXXXX;
字符串密码=XXXXXXX;
//创建凭据,指定用户名和密码。
var凭证=新的网络凭证(用户名、密码);
//创建用于发送电子邮件的Web传输。
var transportWeb=新站点(凭证);
//发送电子邮件。
等待transportWeb.DeliverAsync(myMessage);
就我所知,除了调试和查看
myMessage
标题有错误外,我没有收到任何错误

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

To='header.To'引发了类型为'System.ArgumentException'的异常消息=“密钥路径错误!”


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

它已部署到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 portal中设置帐户,并在项目中保存您的凭据

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

~z~干杯