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

时间:2016-02-29 12:20:02

标签: c# asp.net google-apps

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

有没有办法在Google中包装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);
}

1 个答案:

答案 0 :(得分:6)

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

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

  
      
  1. 在“我的帐户/登录&成就相同的帐户中启用您的Gmail或Google Apps帐户中的两步验证安全”,
  2.   
  3. 然后(在“我的帐户/登录和安全/应用密码”中)可以生成一个特殊密码,以便从其他应用程序访问(无需启用两步验证,您无法到达那里)
  4.   
  5. 此创建的应用密码(以及您的Google电子邮件帐户作为用户名),然后您可以将其用作SMTP登录信息。
  6.   

就是这样。