有没有办法使用 ASP.NET 通过Google Apps帐户发送电子邮件,而无需选择“允许安全性较低的应用程序”选项

本文关键字:选择 安全性 选项 应用程序 电子邮件 ASP NET 通过 Google Apps 有没有 | 更新日期: 2023-09-27 18:36:39

我有一个 ASP.NET 的Web API,我正在尝试使用它来发送电子邮件。 我在使用 smtp.gmail.com 和 587 时遇到身份验证问题。 我已经看到几个链接说要在我的Google Apps帐户上切换"允许安全性较低的应用程序"选项,但我宁愿不必向所有者解释为什么他们需要选择这个听起来可疑的设置。

有没有办法将电子邮件请求打包成 Google 喜欢的 ASP.NET,或者我是否必须选择"允许安全性较低的应用程序"选项?

这是我正在使用的代码,谷歌不喜欢。

using (var client = new SmtpClient("smtp.googlemail.com", 587))
{
    client.Credentials = 
        new System.Net.NetworkCredential("address@yourdomain.com", "yourpassword");
    client.EnableSsl = true;
    var msg = new MailMessage("address@yourdomain.com", "toaddress@anotherdomain.com");
    msg.Body = "[YOUR EMAIL BODY HERE]";
    msg.Subject = "[Message Subject]";
    client.Send(msg);
}

有没有办法使用 ASP.NET 通过Google Apps帐户发送电子邮件,而无需选择“允许安全性较低的应用程序”选项

谷歌在

一段时间前(一两年前)改变了使用其SMTP服务器的可能性。谷歌现在需要更高级别的安全性和身份验证。但是,仍然可以在没有"允许安全性较低的应用程序"选项的情况下使用它,但您不能使用标准的Google用户名和密码。

这是如何做到的(简而言之):

  1. 在"我的帐户/登录和安全"中打开 Gmail 或 Google Apps 帐户中的两步验证,
  2. 然后(在"我的帐户/登录和安全/应用密码"中),可以生成一个特殊密码,以便从其他应用程序访问(如果未打开两步验证,您将无法访问该密码)
  3. 此创建的应用密码(以及作为用户名的 Google 电子邮件帐户)可用作 SMTP 登录名。

就这样。