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 证书尚未导入到您的根证书存储中。
有两种解决方法:
- 将 Google 的根 CA 证书导入您的系统(如何执行此操作因 Windows、Linux、MacOS 而异)
- 通过在
client.ServerCertificateValidationCallback
上设置您自己的证书验证回调方法来覆盖证书验证
有关详细信息,请参阅常见问题解答:https://github.com/jstedfast/MailKit/blob/master/FAQ.md#InvalidSslCertificate
我对 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 证书尚未导入到您的根证书存储中。
有两种解决方法:
- 将 Google 的根 CA 证书导入您的系统(如何执行此操作因 Windows、Linux、MacOS 而异)
- 通过在
client.ServerCertificateValidationCallback
上设置您自己的证书验证回调方法来覆盖证书验证
有关详细信息,请参阅常见问题解答:https://github.com/jstedfast/MailKit/blob/master/FAQ.md#InvalidSslCertificate