Smtp “意外”;根据验证程序,远程证书无效。”;
我正试图通过Mailkit从.NetCore/Ubuntu机器连接到SMTP服务器 我正试图在关闭SSL的情况下连接到服务器上的端口25 邮件服务器是本地局域网上的windows服务器,在其他机器上工作正常,设置与问题Ubuntu机器上使用的设置相同 用于连接的代码如下所示:Smtp “意外”;根据验证程序,远程证书无效。”;,smtp,certificate,asp.net-core,mailkit,Smtp,Certificate,Asp.net Core,Mailkit,我正试图通过Mailkit从.NetCore/Ubuntu机器连接到SMTP服务器 我正试图在关闭SSL的情况下连接到服务器上的端口25 邮件服务器是本地局域网上的windows服务器,在其他机器上工作正常,设置与问题Ubuntu机器上使用的设置相同 用于连接的代码如下所示: using (var client = new SmtpClient()) { client.Connect("smtp.mydomain.c
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上可能有CA颁发通过组策略自动信任的证书。所以你也需要这样做 或者你可以说去他妈的,然后告诉StmpClient忽略安全性
client.EnableSsl = true;
在端口25上看到SSL证书的原因是服务器在该端口上提供starttls。要了解使用了哪个SSL证书,您可以通过OpenSSL使用以下方法: openssl s_客户端-连接exchange01.int.contoso.com:25-starttls smtp
这里使用的SSL证书可能是自签名的,那么您可以将其替换为受信任的证书(如果可以),也可以信任自签名证书。谢谢您的回复。我可以通过传递SecureSocketOptions来解决这个问题;作为Connect()方法的第三个参数。