我正在使用以下代码并在尝试连接到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:根据验证过程,远程证书无效。 实际问题是什么?可能的解决方案是什么?
答案 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种方法可以解决此问题:
STARTTLS
:client.ConnectAsync(host,port,SecureSocketOptions.None);