2011-12-07 206 views
4

我在下面的代碼中收到錯誤「服務器不支持安全連接」。服務器不支持安全連接

SmtpClient client = new SmtpClient(exchangeServer); 
client.UseDefaultCredentials = false; 
client.EnableSsl = true; 
client.Credentials = new NetworkCredential(user, password); 

MailAddress from = new MailAddress(fromAddress); 
MailAddress to = new MailAddress(to); 
MailMessage mail = new MailMessage(from, to); 

// ... 

client.Send(mail); 

我該如何解決這個問題?

+2

你試過'EnableSsl = FALSE'? – svick

+0

是的,如果我設置EnabledSsl = false,它將返回錯誤:SMTP服務器需要安全連接或客戶端未通過身份驗證。服務器的迴應是:5.7.1客戶端未被認證 – jasonline

+0

設置啓用SSL爲false,更具體地說,只允許在該域內發送電子郵件,所以如果你的域名是「mail.mybusiness.com」,你只能發送電子郵件到「[email protected]」 –

回答

0

您使用的是什麼端口?您可能會發現需要在您的SmtpClient對象中指定端口。

+0

是否需要此端口?因爲如果我設置UseDefaultCredentials = true並在「發件人」地址中使用我自己的用戶地址,我可以成功發送電子郵件。 – jasonline

+0

我有一個快速的谷歌,很多答案似乎指向一個端口。 –

3

您的服務器在默認端口上不支持SSL;大多數不會。

如果將SSL關閉,你得到的消息,「 SMTP服務器要求安全連接或客戶端未通過身份驗證服務器響應爲:5.7.1客戶端未通過身份驗證」

那告訴你,你沒有通過身份驗證。此外,您在評論中說,「因爲如果我設置UseDefaultCredentials = true並在」發件人「地址中使用我自己的用戶地址,我可以成功發送電子郵件。」

這顯然是如何配置SMTP服務器的問題。您將需要獲取適當的憑據,或將SMTP服務器設置爲允許從Web服務器發送郵件。

+0

但是,如何在不更改SMTP服務器設置(如添加端口)的情況下使用默認憑據發送電子郵件? – jasonline

+0

如果不指定,它將在默認端口上發送。這是正確的行爲。您的憑證與正在使用的端口無關;它只是看起來像這樣,因爲你一次改變了多個東西(SSL設置和登錄設置)......當試圖調試某些東西時是一個很大的禁忌;-) –

+0

這是否意味着上面的代碼是可以的?我需要在交換服務器端配置哪些具體內容,以便此問題消失? – jasonline

-3

client.EnableSsl = false; 
+0

正如上面評論所述:**它會返回錯誤:SMTP服務器需要安全連接或客戶端未通過身份驗證。服務器的迴應是:5.7.1客戶端沒有通過驗證** – Luv

+2

-1,您回答了一個2年前的問題,回答質量很低,這個問題已經在評論中了?如果你認爲你有什麼可以添加到一箇舊的問題,至少使它是一個很好,徹底的答案。 –

相關問題