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

Car*_*dez 5 c# asp.net email gmail mailkit

我有一个关于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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

从我在其他帖子中发现的有些相关,这应该足以使用MailKit发送它,但它不能正常工作.我收到以下异常,我不知道如何从这里开始.

这是例外:

在此输入图像描述

我已经看到了这个问题,但我没有太多意义:如何使用MailKit发送电子邮件?

任何帮助都非常感谢,谢谢.

jst*_*ast 6

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

最有可能的原因是因为Google Root CA证书尚未导入您的根证书存储区.

有两种方法:

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

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