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

斯姆普利布。SMTP 身份验证错误: (535,“5.7.3 身份验证失败”)

厉念
2023-03-14

我正在尝试使用smtplib在python 2.7中发送邮件。下面的代码非常简单:

import smtplib

def main(argv=None):

    sender = 'abc@gmail.com'
    receivers = ['xyz@gmail.com']      

    message = """
    This is a test e-mail message.
    """

    smtpObj = smtplib.SMTP('xyz@gmail.com',25)

    smtpObj.login('abc', 'pwd')       
    smtpObj.sendmail(sender, receivers, message)         
    print "Successfully sent email"


if __name__ == '__main__':
    main()

现在当我执行下面的代码时,我不断得到这个异常:

smtplib.SMTPAuthenticationError: (535, '5.7.3 Authentication unsuccessful').

共有3个答案

戚研
2023-03-14

谷歌已于2022年5月30日删除此功能。

为了帮助确保您的帐户安全,从2022年5月30日起,Google不再支持使用第三方应用程序或设备,这些应用程序或设备要求您仅使用您的用户名和密码登录您的Google帐户。

重要提示:此截止日期不适用于Google Workspace或Google Cloud Id实体客户。这些客户的执行日期将稍后在Workspace博客上公布。

高才
2023-03-14

为了完整回答这个问题,我已经多次遇到完全相同的错误——每次都是出于不同的原因。这条错误信息一直困扰着我,我有点变成了这条错误信息的自称专家。这里列出了我面临的所有问题以及我是如何解决它的。

>

  • 需要在 Google 管理员中启用“安全性较低的应用”(https://admin.google.com/ac/security/lsa)

    即使启用了上述设置,如果您的电子邮件中有双重验证设置,服务也可能会失败。解决方案是创建一个应用程序特定的密码(https://myaccount.google.com/u/5/apppasswords),该密码必须用作Python中smtplb的密码。

    如果你第一次用一个未知的IP这样做。可能有一个秘密的验证码启动认证。你可能会看到一个534错误代码,而不是535,但我不能保证。您需要首先点击一个链接来清除验证码(https://accounts . Google . com/DisplayUnlockCaptcha)。你可能需要等待10分钟,它才真正注册它。所以去喝杯咖啡吧。

    最后,如果您没有打开正确的端口,您将收到相同的错误消息。我在防火墙中没有打开端口587。我启用了smtp和smtps作为服务,但默认情况下它们只覆盖端口25和465。因此,如果您使用587,请确保它是打开的,例如对于防火墙,sudo firewall cmd--permanent--add port=587/tcp,然后重新启动防火墙服务。

    最后,如果您没有在服务器上正确设置SSL,此邮件仍然会失败。在某个时候,我收到了错误消息,在一些日志中进一步调查后,我发现它未能进行握手。

    最后更新:我的代码中的ehlo()不小心出现在错误的位置,突然开始抛出535身份验证错误,即:

    会话 = smtplib。SMTP('smtp.gmail.com', 587)

    session . starttls()session . log in(发件人地址,发件人通行证)

    session.ehlo(“yourdomain.com”) #

  • 缪坚诚
    2023-03-14

    实际上,当我尝试在python控制台上执行相同的语句时,我知道密码不正确,这是由于不同的字符编码。

    对于所有其他用户,请避免复制粘贴

     类似资料:
    • 我们的项目包括一个JavaFX应用程序,它通过RMI协议调用JEE服务器。我们使用Payara应用服务器,一个Glassfish分叉。我们想使用带有数据库的JAAS来管理授权给用户的身份验证和权限。 我们不了解如何将创建的JDBC领域与我们的应用程序绑定以与数据库交互。 我们可以像这里一样以编程方式调用领域或直接查询数据库吗? 启动LoginContext的服务: 登录模块: CallBackHa

    • 问题内容: 我正在尝试通过FTP SITE代理访问FTP服务器以绕过防火墙,因为我知道我的用户名/密码正确,因为可以使用FileZilla进行连接。我尝试使用,但没有用。码: 给我这个错误: 我尝试过的事情: 使用备用构造函数。 拆下 使用just ,不使用FTPProxyConnector 设置连接器之前进行身份验证,反之亦然。 但是,当我仅使用Authenticator时,会收到不同的错误提示

    • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

    • Tweepy API请求twitter return me Twitter错误响应:状态代码=401。 这是我的实际代码: 我曾试图用tweepy软件包删除推文,并获得了所有必需的密钥。镊子包装不起作用吗?有人能帮我解决这个问题吗。

    • 我有一个问题,通过mongo shell连接到MongoDB地图集,即使我已经做了一切正确的和三重检查数据用户名和密码,包括我的IP在白名单中,更改库名测试,并尝试在同一行中添加-密码 `$mongo“mongodbsrv://cluster******.mongodb。net/test”--用户名admin--密码admin MongoDB shell v4.4.6版连接到:mongodb://

    • cluster=hfactory.getOrCreateCluster(“test cluster”,“localhost:9160”,凭据); 但不幸的是,它给了我一个错误: HFactory类型中的方法getOrCreateCluster(String,CassandraHostConfigurator,Map)不适用于参数(String,String,Map)