Asp.Net Core MailKit:根据验证程序,远程证书无效

Asp.Net Core MailKit: The remote certificate is invalid according to the validation proceedure

我对 asp.net 核心上的电子邮件发送有疑问。

所以我有这个代码:

private void SendEmailLocalSMTP(string email, string subject, string message)
{
        MimeMessage mailMsg = new MimeMessage();

        //TESTING ENVIRONMENT ONLY!!!
        mailMsg.To.Add(new MailboxAddress("myMail@gmail.com", "cjimenezber@gmail.com"));

        // From
        mailMsg.From.Add(new MailboxAddress("noreply@app.com", "Facturacion"));

        // Subject and multipart/alternative Body
        mailMsg.Subject = subject;
        string html = message;

        System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("myMail@gmail.com", "myPassword");

        // Init SmtpClient and send
        using (var client = new SmtpClient())
        {
            client.Connect("smtp.gmail.com", 587, SecureSocketOptions.StartTls);
            client.AuthenticationMechanisms.Remove("XOAUTH2");
            client.Authenticate(credentials);
            client.Send(mailMsg);
            client.Disconnect(true);
        }
    }

根据我在其他有些相关的帖子中发现的内容,这应该足以使用 MailKit 发送它,但是它无法正常工作。我收到以下异常,我不知道如何从这里继续。

这是例外情况:

我看过这个问题,但我没有从中理解多少:

非常感谢任何帮助,谢谢。

您遇到的问题是您的系统不信任 GMail SSL 证书。

这很可能是因为 Google 根 CA 证书尚未导入到您的根证书存储中。

有两种解决方法:

  1. 将 Google 的根 CA 证书导入您的系统(如何执行此操作因 Windows、Linux、MacOS 而异)
  2. 通过在 client.ServerCertificateValidationCallback
  3. 上设置您自己的证书验证回调方法来覆盖证书验证

有关详细信息,请参阅常见问题解答:https://github.com/jstedfast/MailKit/blob/master/FAQ.md#InvalidSslCertificate