使用SendGrid发送电子邮件
在我的本地工作正常(下面的代码) 没有源代码控制,只是一个与AzureWebsites相同代码的直接WebDeploy,下面的错误。 SendGrid支持没有任何线索。
异常详情:System.Net.Sockets.SocketException:
[SocketException(0x271d):尝试以其访问权限禁止的方式访问套接字]
CodeScales.Http.HttpClient.Navigate(HttpRequest request,HttpBehavior httpBehavior)+772 CodeScales.Http.HttpClient.Execute(HttpRequest request)+45 SendGridMail.Transport.REST.Deliver(ISendGrid消息)+115
public bool SendEmail(string from, string to, string subject, string content)
{
var myMessage = SendGrid.GenerateInstance();
// Setup the email properties.
myMessage.From = new MailAddress(from);
myMessage.AddTo(to);
myMessage.Text = content;
myMessage.Subject = subject;
var username = "#####";
var pswd = "#####";
var credentials = new NetworkCredential(username, pswd);
// Get REST instance for sending email.
var transportREST = REST.GetInstance(credentials);
// Send the email.
transportREST.Deliver(myMessage);
return true;
}
答案 0 :(得分:4)
这看起来像某种Windows Azure错误而不是SendGrid问题。我解决这个问题的两个建议是:
<强> 1。尝试使用SMTP API而不是Web API发送电子邮件
可能是出站HTTP连接有问题(这会让我感到惊讶,但是嘿,它会发生)。
<强> 2。尝试使用Azure提供的代码
Azure有关于如何使用SendGrid的相当不错的文档,可能值得一看这些并使用他们的一些示例代码。
http://www.windowsazure.com/en-us/develop/net/how-to-guides/sendgrid-email-service/
第3。联系Azure支持
他们可以深入了解并了解您正在做的导致错误的内容。如果你这样做,请确保你回复他们在这里说的话。