当前位置: 首页 > 知识库问答 >
问题:

只有当帐户启用了“访问不太安全的应用程序”时,才能通过Gmail帐户发送电子邮件

洪祺
2023-03-14

如果我的Gmail帐户禁用了对不太安全的应用程序的访问权限,那么我的应用程序无法通过此帐户发送电子邮件。相反,我得到“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);
    }
}

共有2个答案

高茂
2023-03-14

我认为“不太安全”只意味着您将凭据提供给第三方,而他们不使用两步验证。

关于Google“不太安全”设置

需要注意的是,Google的不安全声明不应被解读为不安全。不安全应用程序是一个描述行为问题而不是技术问题的标签。当您将凭据交给第三方以交给身份验证机构时,很多事情都可能出错:第三方可能会在不告诉您的情况下将凭据保存在存储中,他们可能会将您的凭据用于规定的应用程序范围之外的目的,他们可能会通过未经加密的网络发送您的凭据等。最终,只有当相关第三方有恶意时,它才是不安全的,因此您应该始终保持警惕,知道您将凭据发送给谁。COMPanion Corp存储您的凭据仅用于使用Google的SMTP电子邮件服务,并且使用最新的安全性存储它们。

来源:http://www.goalexandria.com/v7Docs/index.php/Using_Gmail_as_Your_SMTP_Server

井斌斌
2023-03-14

考虑到asp.net标签应用于这个问题,并考虑到Google需要使用OAuth 2.0以避免不得不使用Access for不太安全的应用程序选项,似乎一种选择是使用OWIN中间件可以通过在www.asp.net.搜索术语Oauth 2.0找到

此网站上有一篇标题为“代码”的文章!有脸书、推特、LinkedIn和谷歌OAuth2登录的MVC 5应用程序可能会引起一些兴趣。这篇文章显示了许多屏幕截图,这些截图引导开发人员完成获取资源、创建应用程序和使用Google服务器进行身份验证的过程。

 类似资料:
  • 我正在开发一个WordPress插件,其中我使用PHP邮件功能发送电子邮件,但是邮件功能有一个问题。它向我的非Gmail帐户发送电子邮件,但它不会向我的Gmail帐户发送电子邮件。我正在使用以下代码: 是我的代码有问题,还是邮件功能有问题?如果有其他方法可以发送电子邮件,请给我链接。

  • 我正在尝试从应用程序发送电子邮件。 问题是Gmail不允许我进行身份验证,因为位置不寻常——当然,每个应用程序都安装在其他位置。 我的代码(使用Javax): 该代码在我的测试设备上运行良好,但在其他使用我的应用程序的设备上崩溃。 我得到的错误:javax.mail.身份验证失败异常:534-5.7.14请通过534-5.7.14您的网络浏览器登录,然后重试。534-5.7.14在534 5.7.

  • 我成功通过passportjs验证,但NodeEmailer只发送一封电子邮件,这是控制台中使用的一封电子邮件。云谷歌。 当我尝试其他gmail帐户时,我得到这个错误: 错误:无效登录:535-5.7.8不接受用户名和密码。在535 5.7.8了解更多信息https://support.google.com/mail/?p=BadCredentialsu6sm13346885wrp。0-SMTPC

  • 当我尝试通过运行Laravel 4的网站发送电子邮件时,我会收到这个异常: 预期响应代码为250,但收到代码“535”,消息“535-5.7.8用户名和密码不被接受。有关详细信息,请访问535 5.7.8http://support.google.com/mail/bin/answer.py?answer=14257wd7sm12843789wjc。36-gsmtp“ 这是我的邮件配置: 我第一次

  • 问题内容: 我正在从Java应用程序向Gmail帐户发送邮件。我曾经使用过Java Mail API,并且运行良好。但是是否可以在不使用Java中的邮件API的情况下发送电子邮件? 我的意思是仅使用套接字: 但它不起作用,它不会发送邮件。谁能告诉我可能是什么问题? 问题答案: 这是一个很好的例子: -> http://www.java2s.com/Code/Java/Network-Protoco

  • 因此,我实际上是试图通过IMAP使用Node连接到Outlook/Exchange电子邮件帐户。 使用旧的Live Connect API,我可以使用OAuth2令牌(https://msdn.microsoft.com/en-us/windows/desktop/DN440163)执行IMAP命令。但这似乎对Exchange帐户不起作用,因为试图用这些帐户执行Oauth流只会带来一个错误“此Mi