在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)时才开始发生。为什么它不使用config中的邮件设置?
答案 0 :(得分: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门户本身进行设置。