9

使用 SendGrid 发送电子邮件

在我的本地(下面的代码)上工作得很好没有源代码控制,只需将相同代码的直接 WebDeploy 到 AzureWebsites 就会产生下面的错误。SendGrid 支持没有任何线索。

异常详细信息:System.Net.Sockets.SocketException:

[SocketException (0x271d): 试图以访问权限禁止的方式访问套接字]

CodeScales.Http.HttpClient.Navigate(HttpRequest 请求,HttpBehavior httpBehavior)+772 CodeScales.Http.HttpClient.Execute(HttpRequest 请求)+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;
    }
4

1 回答 1

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 支持

他们可以查看引擎盖下的内容,看看您正在做什么导致错误。如果您这样做,请确保您在此处发回他们所说的内容。

于 2012-10-15T21:28:23.073 回答