【问题标题】:Sending from gmail with smtplib使用 smtplib 从 gmail 发送
【发布时间】:2016-04-29 10:23:37
【问题描述】:

我正在尝试使用smtplib 设置一个python 脚本,该脚本将通过电子邮件发送警报通知。我不需要任何花哨的东西,所以我想我会坚持基础知识并使用 SMTP 来发送消息。根据众多可用的在线示例之一,我开始尝试这样做

server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login('username','password')

但此时失败并显示SMTPAuthenticationError 534,告诉我通过我的网络浏览器登录。当我这样做时,gmail 给我发电子邮件说登录失败,因为它来自“一个不符合现代安全标准的应用程序”。

我看到一些人通过将他们的 gmail 帐户更改为 accept logon from less secure apps 解决了类似的问题,但我自己这样做并继续收到相同的错误消息。

那么普通的旧 SMTP 不会削减它,我需要看中吗?我做错了什么,或者我可以做些什么来完成这项工作?

【问题讨论】:

  • This question 是关于 IMAP,但我怀疑同样的解决方案也适用。建议之一是使用 OAuth 进行身份验证; this question 解决了如何使用 smtplib 做到这一点。
  • 启用两因素身份验证,并为此应用程序生成应用程序密码。大约 3 年前,这对我有用

标签: python email smtp smtplib


【解决方案1】:

事实证明,我第一次尝试将 gmail 设置为接受从不太安全的应用程序登录的尝试(无论出于何种原因)都没有成功。转到https://myaccount.google.com/security?pli=1 并打开此设置允许我成功访问。

尽管 cmets 将我指向 oauth2 和应用程序密码是最有帮助的,而且我现在已经完成了最基本的工作,我可能会研究那些更强大的长期方法。谢谢!

【讨论】:

    猜你喜欢
    • 2012-07-11
    • 2019-02-04
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 2017-02-03
    • 2015-03-06
    • 2023-01-03
    • 1970-01-01
    相关资源
    最近更新 更多