有没有办法使用ASP.NET通过Google Apps帐户发送电子邮件而不选择"允许安全性较低的应用"选项?

jva*_*nce 4 c# asp.net google-apps

我有一个ASP.NET Web API,我正试图用来发送电子邮件.我正在使用smtp.gmail.com和587获取身份验证问题.我看到有几个链接说要在我的Google Apps帐户上切换"允许不太安全的应用"选项,但我宁愿不必向所有者解释为什么他们需要选择这个可疑的声音设置.

有没有办法在ASP.NET中打包一个Google想要的电子邮件请求,还是我必须选择"允许安全性较低的应用程序"选项?

这是我正在使用的Google不喜欢的代码.

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);
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*man 8

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

以下是如何做到这一点(简而言之):

  1. 在"我的帐户/登录和安全"中启用您的Gmail或Google Apps帐户中的两步验证,
  2. 然后(在"我的帐户/登录和安全/应用程序密码"中)可以生成一个特殊密码,以便从其他应用程序访问(没有打开两步验证,你无法到达那里)
  3. 这创建了应用程序密码(以及您的谷歌电子邮件帐户作为用户名),然后您可以将其用作SMTP登录.

就这样.