2012-06-13 155 views
11

我通過Gmail的SMTP發送郵件代碼:無法從Azure的雲服務使用Gmail SMTP

SmtpClient client = new SmtpClient("smtp.gmail.com", 587); 
client.EnableSsl = true; 
client.UseDefaultCredentials = false; 
client.Credentials = new NetworkCredential("my_user_name", "my_password"); 

MailMessage message = 
    new MailMessage(new MailAddress("[email protected]"), new MailAddress("[email protected]")); 
message.Body = "body"; 
message.Subject = "subject"; 
client.Send(message); 

代碼工作我的本地機器上,當我在Azure的發佈爲「網站」。

,但是當我在「雲服務」發佈我得到這個異常:

System.Net.Mail.SmtpException: The SMTP server requires a secure connection 
or the client was not authenticated. The server response was: 
5.5.1 Authentication Required. Learn more at 

有什麼,從「雲服務」,可以有這樣的不同,在Windows Azure的「網站」影響?

謝謝!

回答

8

Web.config文件中使用以下SMTP設置:

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

我認爲你傳遞錯誤憑證。使用@ gmail.com後綴的用戶名和嘗試設置bodyhtml屬性也是如此......

希望這會爲你..它總是正常工作對我工作..在

檢查答案的評論this SO thread

+0

賓果!後綴用戶名@ gmail.com做了「雲服務」應用程序的伎倆。 – Cotten

+0

實際上gmail會將完整的電子郵件ID作爲用戶名或者在Outlook或任何客戶端進行配置。 –

+0

也許,但它在cassini和Azure中沒有@ gmail.com作爲「Web站點」工作。也許我只是幸運:) – Cotten

4

看起來你的連接被SMTP服務器拒絕,因爲它沒有啓用SSL或憑據不正確。您將需要設置SSL和網絡憑據在你的web.config如下:

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

更多信息,請在此SO討論: C# - Can't send mail in WIndows Azure via Gmail SMTP

0

就像之前所說的你的用戶名應該包含「@ googlemail.com」。在我的代碼(Java)中,我使用端口465通過谷歌郵件發送郵件。

12

我遇到了這個確切的問題。但是,無論我使用<system.net>配置設置並使用正確的憑據,主機,端口等事實,我都遇到了此問題。

問題是Google拒絕來自的驗證請求Azure上。我通過登錄到我的代碼中用於SMTP客戶端的Gmail帳戶發現了這一點。一旦我登錄Gmail帳戶,我注意到一個紅色標題 - 警告說,

有人從您的帳戶不典型的位置登錄。 如果不是你,請立即更改密碼。

除了警告,我收到一封電子郵件,說:

最近有人嘗試使用應用程序登錄到您的谷歌帳戶 ,[email protected]。我們阻止登錄嘗試,以防 這是一名劫機者試圖訪問您的帳戶。請檢查登錄嘗試的 細節:

  • 星期一,2012年8月27日下午10點33分59秒GMT
  • IP地址:168.62.48.183
  • 地點:美國

如果您不認識此登錄嘗試,則其他人可能會嘗試訪問您的帳戶 。您應該登錄到您的帳戶,並立即重置密碼 。瞭解如何在 http://support.google.com/accounts?p=reset_pw

如果這是你,你想給你的 帳戶此應用程序的訪問,完成列出的故障排除步驟在 http://support.google.com/mail?p=client_login

此致谷歌帳戶小組

在我按照提供的鏈接中列出的步驟操作之後,我的Azure網站能夠成功登錄到我的Gmail帳戶並使用Gmail作爲SMTP客戶端。

+0

僅供參考 - 您需要登錄到您的代碼中使用的Gmail帳戶。我收到了一封關聯帳戶的'可疑活動'電子郵件,但無法授權IP地址。 – Jason

+0

你的傳奇!我必須再次使用我的gmail帳戶登錄,並將可疑登錄標記爲合法,並轉至http://www.google.com/accounts/DisplayUnlockCaptcha。整理出來。 – Henners

+0

你是一個拯救生命的人,謝謝!現在我已經把這頭髮拉了幾個小時。 eeesh! –