首页 > 解决方案 > 在 Asp.net core 中发送电子邮件时出错(尝试建立 SSL 或 TLS 连接时出错。)

问题描述

我正在使用 asp.net core 3.1 进行项目,我也在我的工作中使用设计模式。

当我尝试使用 smtp 发送电子邮件时,出现此错误。

尝试建立 SSL 或 TLS 连接时出错。无法验证服务器的 SSL 证书,原因如下: • 服务器证书有以下错误: • 吊销功能无法检查证书的吊销。

这是我的代码...

using (var client = new SmtpClient())
        {
            try
            {
                await client.ConnectAsync(_mailSettings.Host, _mailSettings.Port, false);
                client.AuthenticationMechanisms.Remove("XOAUTH2");
                await client.AuthenticateAsync(_mailSettings.UserName, _mailSettings.Password);
                await client.SendAsync(mailMessage);
            }
            catch
            {

                throw;
            }
            finally
            {
                await client.DisconnectAsync(true);
                client.Dispose();
            }

        }

错误发生在此行之后...

 await client.ConnectAsync(_mailSettings.Host, _mailSettings.Port, false);

标签: c#emailasp.net-coresmtp

解决方案


吊销功能无法检查证书的吊销。

这通常是由于 CRL 服务器脱机或在您尝试建立 SSL/TLS 连接时无法访问而导致的暂时性错误,因此SslStream无法验证服务器的 SSL 证书。

CRL 服务器是为客户端提供一种方法来检查证书是否已被吊销的中央机构。

您可以在调用该方法之前使用以下代码片段禁用证书吊销检查:Connect

client.CheckCertificateRevocation = false;

有关详细信息,请参阅文档: http: //www.mimekit.net/docs/html/P_MailKit_IMailService_CheckCertificateRevocation.htm


推荐阅读