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

7
我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:

我有一个关于在asp.net core上发送电子邮件的问题。

所以我有这段代码:

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发送邮件,但它无法正常工作。我遇到了以下异常情况,不知道如何继续。

异常信息如下:

enter image description here

我看到了这个问题,但是没有从中得到太多有意义的信息:如何使用MailKit发送电子邮件?

非常感谢任何帮助。

1个回答

10
您遇到的问题是您的系统不信任GMail SSL证书。
最有可能的原因是Google根CA证书未被导入您的根证书存储中。
有两种方法可以解决这个问题:
1. 将Google的根CA证书导入您的系统中(如何操作取决于Windows、Linux、MacOS)。 2. 通过在`client.ServerCertificateValidationCallback`上设置自己的证书验证回调方法来覆盖证书验证。
欲了解更多信息,请参见FAQ:https://github.com/jstedfast/MailKit/blob/master/FAQ.md#InvalidSslCertificate

谢谢!回答很好! - Carlos Jimenez Bermudez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接