对 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中文网其他相关文章!