smtp - 意外 "The remote certificate is invalid according to the validation procedure."

标签 smtp certificate asp.net-core mailkit

我正在尝试通过 Mailkit 从 .NetCore/Ubuntu 计算机连接到 SMTP 服务器。

我尝试在关闭 SSL 的情况下连接到服务器上的端口 25。

邮件服务器是本地 LAN 上的 Windows 服务器,并且在具有与问题 Ubuntu 计算机上使用的相同设置的其他计算机上运行良好。

用于连接的代码如下:

            using (var client = new SmtpClient())
            {
                client.Connect("smtp.mydomain.com", 25,false);
                client.Authenticate(username, password);
                client.Send(emailMessage);
                client.Disconnect(true);
            }

但是,这会在 .Connect 行之后立即引发异常并显示错误消息 “根据验证程序,远程证书无效。”

令我惊讶的是,普通端口 25 上竟然涉及到证书。

有人知道发生了什么吗?

最佳答案

服务器可能正在启用 TLS 作为 SMTP 的一部分。这很常见,就是 STARTTLS 动词。

如果这在其他 Windows 机器上有效,那么您是否在 AD 中?如果是这样,AD 上可能有一个 CA 颁发通过组策略自动信任的证书。所以你需要configure OpenSSL on your Ubuntu machine to trust that CA也。

或者你可以直接说操它,并告诉 StmpClient 忽略安全性

client.EnableSsl = true;

关于smtp - 意外 "The remote certificate is invalid according to the validation procedure.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39018978/

相关文章:

c# - Debug模式仅适用于在 C# 中发送电子邮件

email - 托管电子邮件黑名单问题

ios - 如何转换 .pem 到 .pfx?

c# - 在 asp.net web api Controller 中使用异步方法有什么好处吗?

asp.net-core - Swagger UI 显示camelCase 参数而不是PascalCase

Python SMTP : emails being combined into one

c# - 通过 C# 发送屏幕截图

macos - Productsigned Mac 应用程序未安装在非我的计算机中

java - 如何以编程方式将受信任的证书添加到当前 JVM 实例

c# - ASP.NET 5 类库可以面向 .NET 3.5 吗?