2017-08-29 226 views
0

我正在使用以下代碼並在嘗試連接到SMTP服務器時出現錯誤。我沒有給任何認證憑證來訪問。嘗試連接到SMTP服務器時出現錯誤「199.201.221.19」

var client = new SmtpClient() 
await client.ConnectAsync("199.201.221.19", 587, false); 
client.Send(mail); 

主機:199.201.221.19 端口:587 錯誤:System.Security.Authentication.AuthenticationException:遠程證書根據驗證過程是無效的。 實際問題是什麼,這有什麼可能的解決方案?

回答

0

該錯誤是指SSL/TLS證書驗證錯誤。這意味着您的服務器的SSL證書不會使用.NET的標準根CA證書進行驗證。

即使您在ConnectAsync()方法調用中指定useSslfalse,但如果服務器支持STARTTLS,MailKit仍將切換到TLS模式。 useSsl參數實際上僅用於告知MailKit端口是否從一開始就需要SSL(如在IMAP/S中爲993,POP/S爲995和SMTP/S中爲465等ssl包裝端口)。

您有解決這個問題的2種選擇:

  1. 按照指示此錯誤的常見問題解答:https://github.com/jstedfast/MailKit/blob/master/FAQ.md#InvalidSslCertificate
  2. 使用不同的ConnectAsync方法,使您可以指定不嘗試STARTTLS:客戶端。 ConnectAsync(主機,端口,SecureSocketOptions.None);
相關問題