在 Asp.net core 中发送电子邮件时出错(尝试建立 SSL 或 TLS 连接时发生错误。)

2 c# email smtp asp.net-core

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

\n

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

\n

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

\n

这是我的代码...

\n
using (var client = new SmtpClient())\n        {\n            try\n            {\n                await client.ConnectAsync(_mailSettings.Host, _mailSettings.Port, false);\n                client.AuthenticationMechanisms.Remove("XOAUTH2");\n                await client.AuthenticateAsync(_mailSettings.UserName, _mailSettings.Password);\n                await client.SendAsync(mailMessage);\n            }\n            catch\n            {\n\n                throw;\n            }\n            finally\n            {\n                await client.DisconnectAsync(true);\n                client.Dispose();\n            }\n\n        }\n
Run Code Online (Sandbox Code Playgroud)\n

错误发生在这一行之后...

\n
 await client.ConnectAsync(_mailSettings.Host, _mailSettings.Port, false);\n
Run Code Online (Sandbox Code Playgroud)\n

jst*_*ast 8

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

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

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

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

client.CheckCertificateRevocation = false;
Run Code Online (Sandbox Code Playgroud)

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