只有当帐户启用了"访问安全性较低的应用"时,才能通过Gmail帐户发送电子邮件

bck*_*rld 9 authentication gmail smtpclient asp.net-identity-2

如果我的Gmail帐户禁用Access安全性较低的应用 ,则我的应用无法通过此帐户发送电子邮件.相反,我得到" SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应是:5.5.1需要身份验证 "异常.

这里谷歌解释说,通过禁止 访问安全性较低的应用程序,只使用应用现代安全标准可以登录.

我的代码需要实现的现代安全标准是什么,您可以通过示例向我展示如何实现它们(不确定是否重要,但我的应用Gmail帐户未使用两步验证)?

这是我目前使用的代码:

public class EmailService : IIdentityMessageService
{
    public Task SendAsync(IdentityMessage message)
    {
        var credentialUserName = "myAccount@gmail.com";
        var sentFrom = "myAccount@gmail.com";
        var pwd = "myPwd";

        System.Net.Mail.SmtpClient client = 
            new System.Net.Mail.SmtpClient("smtp.gmail.com");

        client.Port = 587;
        client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;

        System.Net.NetworkCredential credentials = 
            new System.Net.NetworkCredential(credentialUserName, pwd);

        client.EnableSsl = true;
        client.Credentials = credentials;

        var mail = 
            new System.Net.Mail.MailMessage(sentFrom, message.Destination);

        mail.Subject = message.Subject;
        mail.Body = message.Body;

        return client.SendMailAsync(mail);
    }
}
Run Code Online (Sandbox Code Playgroud)

kbu*_*ien 1

考虑到asp.net-identity-2标签应用于此问题,并考虑到 Google 要求使用OAuth 2.0以避免必须使用Access for less secure applications选项,似乎一种选择是使用OWIN 中间件可以通过在www.asp.net上搜索术语Oauth 2.0来找到。

该网站发表了一篇题为“代码!”文章。带有 Facebook、Twitter、LinkedIn 和 Google OAuth2 登录的 MVC 5 应用程序可能会引起一些兴趣。该文章似乎显示了许多屏幕截图,引导开发人员完成获取资源、创建应用程序以及使用Google服务器进行身份验证的过程。