c# - 在 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);
解决方案
吊销功能无法检查证书的吊销。
这通常是由于 CRL 服务器脱机或在您尝试建立 SSL/TLS 连接时无法访问而导致的暂时性错误,因此SslStream
无法验证服务器的 SSL 证书。
CRL 服务器是为客户端提供一种方法来检查证书是否已被吊销的中央机构。
您可以在调用该方法之前使用以下代码片段禁用证书吊销检查:Connect
client.CheckCertificateRevocation = false;
有关详细信息,请参阅文档: http: //www.mimekit.net/docs/html/P_MailKit_IMailService_CheckCertificateRevocation.htm
推荐阅读
- java - jsoup从html中解析一行
- git - GitLab:编辑合并请求描述会触发发送合并请求挂钩
- c# - 无法从 .Net Core Razor 中的锚点触发控制器
- python - 如何在单独的窗口中添加滚动视图?
- angular - Angular中组件名称的最大长度?
- python - 为 seaborn 热图添加阴影
- rx-java2 - 在 RxJava2 中,如果值相等,我如何比较和过滤两个 observable?
- rust - Rust 错误:在删除可变借用后发生借用
- javascript - 使用两个按钮发布或显示选择表单数据
- python - 美丽的汤 vs 硒 vs urllib