使用 Mailkit :“SMTP 服务器意外断开连接。”

问题描述 投票:0回答:4

我正在尝试使用 SendGrid 的免费 SMTP 中继从我的 ASP.NET 应用程序发送电子邮件。我可以连接到服务器,但当我尝试进行身份验证时,收到此错误:“SMTP 服务器意外断开连接。”

using (var client = new SmtpClient())
        {
            client.ServerCertificateValidationCallback =
                (sender, certificate, certChainType, errors) => true;
            client.AuthenticationMechanisms.Remove("XOAUTH2");

            // connection
            client.Connect("smtp.host", 465, true);
            client.Authenticate("UserName", "Password");//error occurs here

            client.Send(email);
            client.Disconnect(true);
        }

再次,我可以毫无问题地连接,但是当我尝试进行身份验证时,我收到前面提到的错误...

有什么建议吗?

干杯

c# smtp smtpclient mailkit smtp-auth
4个回答
9
投票

您必须提供:

  • 用户名:是
    apikey
    (作为硬编码值“apikey”)。
  • Password:是您从网络生成的 apikey,它是一个类似散列的大字符串。

您可以在他们的文档上找到此内容。但很难找到。


1
投票

我过去曾多次遇到此问题(包括今天),并且始终是由于 SendGrid 的 IP 访问拒绝发送邮件的尝试所致。所以这实际上主要是对我自己的一个提醒,因为我总是回到这里! :)

在此处检查 IP 访问https://app.sendgrid.com/settings/access


0
投票

我解决了从 SendGrid 更改为 Google 为所有用户提供的免费 SMTP 服务的问题。只需按照此处的步骤操作即可 你应该可以走了!


0
投票

就我而言,这是我自己为 IIS smtp 设置的安全级别中的 IP 地址问题。

因为我的公司有一个允许连接和中继的 IP 白名单,所以我在家工作时忘记为我的 VPN 隧道设置 IP。

在连接中允许我的笔记本电脑 IP 并在 IIS SMTP 上中继首选项后,我消除了错误。

© www.soinside.com 2019 - 2024. All rights reserved.