gpt4 book ai didi

c# - 尝试使用 MailKit 连接到邮件服务器时出现 AuthenticationException

转载 作者:行者123 更新时间:2023-12-02 16:58:27 26 4
gpt4 key购买 nike

我正在使用 MailKit 尝试通过 SMTP 通过交换服务器发送电子邮件,但当我尝试连接时出现以下错误:

An exception of type 'System.Security.Authentication.AuthenticationException' occurred in MailKit.dll but was not handled in user code

Additional information: The remote certificate is invalid according to the validation procedure.

通过 Google 搜索,可以找到很多有关 Gmail 的内容或作为其他错误消息的一部分(例如 FTP 或 Web API 请求等)。我已经与 IT 人员交谈过,它不是自签名证书,我们不需要身份验证(事实上,我管理的 BugZilla 实例使用相同的设置进行设置并且工作正常)。我做错了什么或者如何获得更多详细信息以进一步排除故障?

using (var Client = new SmtpClient())
{
Client.Connect("mail.address.com", 587, false);
Client.AuthenticationMechanisms.Remove("XOAUTH2");
Client.Send(Message);
Client.Disconnect(true);
}

编辑:我已与 IT 人员核实,它与托管 mail.address.com 域 以及交换的 IIS 中使用的证书相同。我也将其安装为受信任的根,但仍然遇到相同的错误。

编辑 2:如果我将代码更新为 Client.Connect("mail.address.com", 587, true); 然后我收到错误:

An exception of type 'System.IO.IOException' occurred in >System.Private.Networking.dll but was not handled in user code

Additional information: The handshake failed due to an unexpected packet format.

最佳答案

尝试使用 Client.Connect("mail.address.com", 587, SecureSocketOptions.None); 禁用 STARTTLS。

如果您想保留 STARTTLS,您可以尝试覆盖 Client.ServerCertificateValidationCallback

获取有关错误的更多信息的最简单方法是使用如下内容覆盖 ServerCertificateValidationCallback:

bool ValidateRemoteCertificate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
Console.WriteLine ("SslPolicyErrors: {0}", sslPolicyErrors);

return sslPolicyErrors == SslPolicyErrors.None;
}

关于c# - 尝试使用 MailKit 连接到邮件服务器时出现 AuthenticationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35185112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com