2013-07-09 30 views
3

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

<system.net> 
<mailSettings> 
    <smtp deliveryMethod="Network" from="[email protected]"> 
    <network defaultCredentials="false" host="smtp.gmail.com" userName="[email protected]" enableSsl="true" port="587" password="password" /> 
    </smtp> 
</mailSettings> 

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

SmtpClient client = new SmtpClient(); 

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

+0

此问题是在仿真器,实际的Windows Azure云或两者中发生的吗? – MikeWo

+0

就在云端。 –

+0

我可以确认我有同样的问题。邮件设置被忽略(即使使用sendgrid),并且SmtpClient失败,出现Exception = System.InvalidOperationException:未指定SMTP主机。在System.Net.Mail.SmtpClient.CheckHostAndPort() 在System.Net.Mail.SmtpClient.SendAsync(MailMessage消息,对象userToken) 在System.Net.Mail.SmtpClient.SendMailAsync(MailMessage消息),即使设置在web.config中。 –

回答

3

在web.config一个更简单的安装工作对我来说(我使用SendGrid电子邮件应用程序,通过在Azure门户网站设置为一个应用程序):

<mailSettings> 
    <smtp from="[email protected]"> 
     <network host="smtp.sendgrid.net" port="587" userName="[email protected]" password="password" /> 
    </smtp> 
</mailSettings> 

new SmtpClient()电话是一样的东西已经在原始问题中给出。它既可以在模拟器中使用,也可以在Azure托管的网站中使用。

如果问题只是由于gmail托管引起的,您可以试试SendGrid。 Azure用户可以免费使用达到极限,并且可以直接从Azure门户自身进行设置。