ASP .NET Core使用MailKit发送电子邮件

3
public static string Send(string to, string subject, string content, string from = "")
        {
            try
            {
                MimeMessage message = new MimeMessage();
                message.Subject = subject;
                message.Body = new TextPart("Plain") { Text = content };
                message.From.Add(new MailboxAddress(from));
                message.To.Add(new MailboxAddress(to));

                SmtpClient smtp = new SmtpClient();
                smtp.Connect(
                      "smtp.live.com"
                    , 587
                    , MailKit.Security.SecureSocketOptions.StartTls
                );
                smtp.Authenticate("Username@hotmail.com", "Password");
                smtp.Send(message);
                smtp.Disconnect(true);
                return "Success";
            }
            catch (Exception ex)
            {
                return $"Failed. Error: {ex.Message}";
            }
        }

使用Gmail

smtp.Connect(
     "smtp.gmail.com"
   , 587
   , MailKit.Security.SecureSocketOptions.StartTls
);

我尝试修改其他网站文章中的一些属性。

但是,我经常会收到以下错误消息:

  1. "失败。错误:SMTP服务器不支持身份验证。"

  2. "失败。错误:根据验证程序,远程证书无效。"

如何正确设置这些属性?

1个回答

5

我在ASP Core中使用MimeKit向Gmail发送邮件。这是我的项目中可以正常工作的代码片段:

using (var client = new SmtpClient())
{
 client.Connect(_appSettings.SmtpServerAddress, _appSettings.SmtpServerPort, SecureSocketOptions.StartTlsWhenAvailable);
 client.AuthenticationMechanisms.Remove("XOAUTH2"); // Must be removed for Gmail SMTP
 client.Authenticate(_appSettings.SmtpServerUser, _appSettings.SmtpServerPass);
 client.Send(Email);
 client.Disconnect(true);
}

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