【问题标题】:smtplib.SMTPNotSupportedError: SMTP AUTH extension not supported by server. Pythonsmtplib.SMTPNotSupportedError:服务器不支持 SMTP AUTH 扩展。 Python
【发布时间】:2022-06-17 11:05:20
【问题描述】:
  1. 我正在尝试运行 python 脚本来自动发送电子邮件,但我一直遇到此错误。

关于如何解决此问题的任何建议?

 import smtplib
 from email import message


 from_addr = 'myemail@gmail.com'
 to_addr = 'myemail@gmail.com'
 subject = 'Test Email'
 body = 'Test'
 msg = message.Message()
 msg.add_header('from', from_addr)
 msg.add_header('to', to_addr)
 msg.add_header('subject', subject)
 msg.set_payload(body)
 server = smtplib.SMTP('smtp.gmail.com', 587)
 server.login(from_addr, 'password')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program `Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1264.0_x64__qbz5n2kfra8p0\lib\smtplib.py", line 716, in login`
    raise SMTPNotSupportedError(

smtplib.SMTPNotSupportedError: 服务器不支持 SMTP AUTH 扩展。

【问题讨论】:

    标签: python


    【解决方案1】:

    我不是 shure,但对于 gmail,您需要 https://myaccount.google.com/lesssecureapps 允许不太安全的应用:开启设置。

    或者您需要 Google API 进行身份验证:https://developers.google.com/gmail/api/quickstart/python

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。谷歌最近终止了对“允许不太安全的应用程序”的支持,并且通常推荐的使用应用程序密码的答案似乎也不能可靠地工作(它有时会工作,但一两天后 gmail 将开始拒绝身份验证)。

      Google 建议的快速入门指南 (https://developers.google.com/gmail/api/guides/sending) 不完整,但最终确实有效。在该过程中,您将收到一个错误,因为您没有重定向 URI。您需要将其添加到您的 google API 控制台中已批准的 URI,然后再次点击该链接。

      您将遇到第二个问题,因为您的用户不会被批准使用您自己的项目。您需要将您的 gmail 帐户添加为测试用户。

      在您正确转发 URI 并获准使用自己的应用后,您将收到错误消息(HTTP 错误 403),因为 Gmail API 不会被激活。返回 google API 控制台并启用 Gmail API。最后,您可以再次运行 quickstart.py 文件,它会顺利完成。

      我尚未测试此解决方案以实际发送电子邮件,但它似乎确实授予您的应用对您设置的电子邮件帐户的完全访问权限。我也不知道这是否是一个长期的解决方案,或者是否有会超时的令牌。

      基于这个困难,如果可能的话,寻找另一个电子邮件 SMTP 服务似乎是一个更好的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-10
        • 1970-01-01
        • 2012-03-02
        • 2012-08-10
        • 2013-11-14
        • 1970-01-01
        • 2011-09-15
        相关资源
        最近更新 更多