12

System.Net.Mail.SmtpClient クラスを使用して、会社の電子メール サーバー経由で電子メールを中継しようとしています。メール サーバーへのすべての SMTP 接続は SSL である必要があり、自己署名証明書を使用します。警告ダイアログで[OK]をクリックするだけでよいOutlookでは問題ありませんが、SmtpClientに自己署名証明書を受け入れる方法を知っている人はいますか?

このアプリを Windows Azure Platform で使用する予定なので、自己署名証明書を信頼されたルートとしてインストールすることはできません。

4

3 に答える 3

14

You may take a look at the ServerCertificateValidationCallback property:

ServicePointManager.ServerCertificateValidationCallback = 
    (sender, certificate, chain, sslPolicyErrors) => true;

It represents a callback which is called by the runtime when it tries to validate an SSL certificate. By returning true you basically say that you don't care if the certificate is valid or not -> you always accept it. Of course having self signed certificates in production environment is not a good idea.

于 2010-01-28T10:38:45.993 に答える
5

私の問題は、.Net SmtpClient クラスが SMTP SSL 接続用のポート 465 の使用を明らかにサポートしていないことでした。自己署名 SSL 証明書でポート 25 を使用すると、正しく機能しました。

MSDN System.Net フォーラムの質問SmtpClient は自己署名証明書で動作するように構成できますか? .

于 2010-02-06T11:52:42.310 に答える