2013-07-09 48 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門戶自身進行設置。