2011-06-07 97 views
3

發送郵件我有一個使用谷歌SMTP發送郵件一個Asp.Net網站..其使用下面的配置問題與谷歌Apps的電子郵件/ SMTP從網站

<smtp from="[email protected]"> 
<network host="smtp.gmail.com" port="587" userName="[email protected]" password="mypassword" enableSsl="true" /></smtp> 

現在工作正常與正常的Gmail帳戶我需要使用谷歌應用程序的電子郵件和SMTP,我試圖改變配置,如下所示

<smtp from="[email protected]"> 
    <network host="smtp.gmail.com" port="587" userName="[email protected]" password="mypassword" enableSsl="true" /> </smtp> 

但它拋出身份驗證失敗錯誤!
「SMTP服務器要求安全連接或客戶端未通過身份驗證服務器響應爲:5.5.1需要驗證瞭解更多。」

我仔細檢查了谷歌的電子郵件設置,用戶名和密碼,但仍然couldn解決不了!

對這個問題有什麼想法也會有很大的幫助..

感謝和問候,
ANZ

回答

3

從MSDN:

有些SMTP服務器需要 服務器發送電子郵件代表其之前的 客戶端進行身份驗證。當此 SmtpClient對象應使用當前登錄的用戶的默認憑證 對 進行身份驗證時,將此屬性設置爲true。如果將 UseDefaultCredentials屬性設置爲 爲false,則在連接到 服務器時,在 憑據屬性中設置的值將用於 憑據。


client.UseDefaultCredentials = false; 
    smtp.EnableSsl = true; 
    client.Credentials = new System.Net.NetworkCredential(username, password); 
    ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 

    smtp.Send(mail); 

看看這個鏈接also

+2

感謝您的答覆..從您的代碼snipplet一個尖端解決問題:) 只是想在web.config中添加的DefaultCredentials =「假」 .. 不知道爲什麼它的免費Gmail發送的時候不需要ACCT! – 2011-06-07 09:00:05

+1

歡迎光臨:) – 2011-06-07 09:02:19

+0

如何在vb.net中設置ServicePointManager設置?我沒有得到它的代表? – DShah 2011-08-19 10:41:41

0

您應該遵循的服務器響應(如果有的話)的說明。可能,您需要比通常的用戶名/密碼模式更多/另一種身份驗證方案。也許你在google API文檔中找到更多答案?