Gmail SMTP の「リモート証明書が無効です」エラーのトラブルシューティング
C# アプリケーションが Gmail の SMTP サーバー経由での電子メールの送信に失敗し、「検証手順に従ってリモート証明書が無効です。」というエラーが表示される場合があります。これは、アプリケーションの安全な接続 (TLS/SSL) が Gmail の証明書を検証できない場合に発生します。
一時的な修正 (運用には推奨されません):
手っ取り早いが非常に安全ではない解決策は、証明書の検証を一時的に無効にすることです。 これはテストとデバッグにのみ使用してください。 これを運用環境に展開しないでください。
<code class="language-csharp">[Obsolete("Do not use this in Production code!!!", true)] static void DisableCertificateValidation() //Renamed for clarity { // Disabling certificate validation exposes your application to man-in-the-middle attacks. // Your encrypted messages could be intercepted and read. // See: https://stackoverflow.com/a/14907718/740639 ServicePointManager.ServerCertificateValidationCallback = (s, certificate, chain, sslPolicyErrors) => true; }</code>
安全なソリューション:
適切なアプローチには、Gmail の SMTP 証明書を検証することが含まれます。 証明書が次のとおりであることを確認してください:
smtp.gmail.com
) に属します。スタック トレースを理解する:
スタック トレース (プロンプトの出力に含まれていないため、この改訂された応答では提供されていません) には、エラーにつながるメソッド呼び出しの詳細が示されています。 CheckCompletionBeforeNextReceive
での失敗は通常、SSL/TLS ハンドシェイク中の証明書の検証または暗号化に問題があることを示します。 スタック トレースを分析すると、コード内の障害の正確な位置を特定するのに役立ちます。
以上がC# で Gmail の SMTP サーバー経由で電子メールを送信すると、「リモート証明書が無効です」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。