2010-11-10 114 views
0

我正嘗試連接到需要驗證的smtp服務器。無法連接到需要驗證的smtp服務器

這是我用來發送電子郵件的C#代碼:

var smtpClient = new SmtpClient(); 
smtpClient.Host = _smtpServerHost; 
smtpClient.Credentials = new NetworkCredential(_username, _password); 
smtpClient.UseDefaultCredentials = false; 
smtpClient.Send(GetMessage()); 

發送函數引發的錯誤:

The SMTP server requires a secure connection or the client was not authenticated. 
The server response was: Must authenticate before sending mail 

有沒有,我很想念連接到步smtp服務器?

我試圖連接到我們正在運行的測試服務器,但沒有奏效。我也嘗試連接到smtp4dev。我可以連接到它,而不需要身份驗證,但不是當我需要身份驗證時。

+0

您確定您使用的憑據是正確的嗎? – Oded 2010-11-10 19:33:28

+0

我正在使用身份驗證,並且我不使用'smtpClient.UseDefaultCredentials = false'這行' - 你試過刪除那個嗎? – Buildstarted 2010-11-10 19:41:08

+0

您可以嘗試直接連接到服務器telnet到端口25,並嘗試驗證http://www.computerperformance.co.uk/exchange2003/exchange2003_SMTP_Auth_Login.htm。或者,查看拋出的異常,特別是內部異常 – Artemiy 2010-11-10 19:56:45

回答

5

原來你需要設置UseDefaultCredentials = false之前你指定client.Credentials。如果在它不發送AUTH命令之後進行設置。

相關問題