【问题标题】:Asp.Net Core MailKit: The remote certificate is invalid according to the validation proceedureAsp.Net Core MailKit:根据验证过程,远程证书无效
【发布时间】:2017-09-19 21:05:34
【问题描述】:

我有一个关于在 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 发送它,但是它不能正常工作。我收到以下异常,我不知道如何从这里开始。

这是个例外:

我已经看到了这个问题,但我并没有从中理解:How to send email by using MailKit?

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

【问题讨论】:

    标签: c# asp.net email gmail mailkit


    【解决方案1】:

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

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

    有两种解决方法:

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

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

    【讨论】:

    • 谢谢!很好的答案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 2017-06-11
    • 2011-03-28
    • 2016-11-28
    • 1970-01-01
    相关资源
    最近更新 更多