【问题标题】:SendGrid email doesn't work on ProductionSendGrid 电子邮件不适用于生产
【发布时间】:2016-05-16 15:54:34
【问题描述】:

我正在使用 SendGrid Web 在带有 C# 的 ASP.NET MVC 网站中发送带有 PDF 附件的电子邮件。网站作为 Azure 网站托管在 Windows Azure 中。

在我的本地开发机器和同样托管在 Azure 中的测试站点上,一切都运行良好。

但是我觉得这很烦人,因为相同的设置在生产站点中不起作用。它对 SendGrid 使用相同的用户名和密码,但它不起作用。

我的代码类似于以下内容:

public static void SendEmail(string toEmail, string messageHtml)
{
    var message = new SendGridMessage();
    message.From = new MailAddress("me@mydomain.com", "Test Email");
    message.AddTo(toEmail);
    message.Subject = subject;
    message.Html = messageHtml;
    var credentials = new NetworkCredential("mysendgriduser", "mysendgridpassword");
    var transportweb = new SendGrid.Web(credentials);

    try
    {
        transportweb.DeliverAsync(message).Wait();
    }
    catch (Exception e)
    {
        throw e;
    }
}

【问题讨论】:

  • 您是否遇到任何错误?或者它根本不起作用?
  • 仅供参考,Sendgrid.Web.Web 有一个同步的.Deliver(...) 方法。 .DeliverAsync(...).Wait() 困扰着我。
  • 你能提供比“不起作用”更多的细节吗?是否抛出异常?如果是这样,那是什么?包括异常消息、内部异常(如果有)和堆栈跟踪。另外,不要throw e,因为这会生成该类型的新异常并终止堆栈跟踪。如果除了抛出它之外你不打算对 catch 块做任何事情,那么使用 try/catch 就没有任何意义了。
  • @valverij DeliverAsync 在其他 Azure 环境中完美运行。
  • @user1666620 我同意你的观点我仍在尝试捕获异常,一旦我得到它,我会发布详细信息。但困扰我的是相同的代码在其他环境中工作,它怎么会在这个特定的环境中失败?我相信我们要捕获的异常有很多答案。

标签: c# asp.net azure azure-web-app-service sendgrid


【解决方案1】:

Azure 可能会停止特定端口上的出站流量以防止垃圾邮件。 SendGrid 推荐 587 端口。

【讨论】:

  • 请详细说明你的答案,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
相关资源
最近更新 更多