尝试连接到SMTP服务器时出错“199.201.221.19”

时间:2017-08-29 09:29:47

标签: c# email smtp smtpclient mailkit

我正在使用以下代码并在尝试连接到SMTP服务器时出错。我没有提供任何身份验证凭据来访问它。

var client = new SmtpClient()
await client.ConnectAsync("199.201.221.19", 587, false);
client.Send(mail);

主机:199.201.221.19 端口:587 错误:System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效。 实际问题是什么?可能的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

错误是指SSL / TLS证书验证错误。这意味着您的服务器的SSL证书无法使用.NET的标准根CA证书进行验证。

即使您在ConnectAsync()方法调用中已将useSsl指定为false,如果服务器支持STARTTLS,MailKit仍会切换到TLS模式。 useSsl参数实际上只是用于告诉MailKit端口是否从一开始就需要SSL(如在ssl包装的端口中,如IMAP / S为993,POP / S为995,SMTP为465) S)。

您有2种方法可以解决此问题:

  1. 请按常见问题解答中的此错误说明进行操作:https://github.com/jstedfast/MailKit/blob/master/FAQ.md#InvalidSslCertificate
  2. 使用不同的ConnectAsync方法,允许您指定不尝试STARTTLS:client.ConnectAsync(host,port,SecureSocketOptions.None);