3

在 Azure 托管的 MVC 应用程序中,我的邮件设置如下

<system.net>
<mailSettings>
  <smtp deliveryMethod="Network" from="support@smeedi.com">
    <network defaultCredentials="false" host="smtp.gmail.com" userName="username@gmail.com" enableSsl="true" port="587" password="password" />
  </smtp>
</mailSettings>

当我像这样创建一个新的 SMTP 客户端时:

SmtpClient client = new SmtpClient();

所有详细信息都是空的,当客户端尝试发送电子邮件时,我收到 SMTP 主机未指定异常。这仅在升级到 MVC4 和 Azure 2.0(从 Mvc 3 和 Azure 1.7)时开始发生。为什么不使用配置中的邮件设置?

4

1 回答 1

3

web.config 中更简单的设置对我有用(我使用的是 SendGrid 电子邮件应用程序,通过 Azure 门户设置为应用程序):

<mailSettings>
    <smtp from="no-reply@mydomain.com">
        <network host="smtp.sendgrid.net" port="587" userName="myAzureSuppliedId@azure.com" password="password" />
    </smtp>
</mailSettings>

new SmtpClient()呼叫与原始问题中给出的呼叫相同。它可以在模拟器和 Azure 托管网站中运行。

如果问题完全是由于 gmail 托管引起的,您也许可以尝试一下 SendGrid。它对 Azure 用户免费,但有上限,并且可以直接从 Azure 门户本身进行设置。

于 2013-10-07T23:58:15.033 回答