2017-08-29 43 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-wrappedポートのように)。

あなたがこの問題を修正するための2つのオプションがあります。

  1. はFAQにこのエラーの指示に従ってください:クライアント:https://github.com/jstedfast/MailKit/blob/master/FAQ.md#InvalidSslCertificate
  2. あなたがSTARTTLSをしようとしないように指定することができます異なるConnectAsyncメソッドを使用します。 ConnectAsync(ホスト、ポート、SecureSocketOptions.None);
関連する問題