Python 发送电子邮件不起作用,并给出很长的错误消息

Posted

技术标签:

【中文标题】Python 发送电子邮件不起作用,并给出很长的错误消息【英文标题】:Python sending email won't work, and is giving long error messages 【发布时间】:2015-06-06 19:17:09 【问题描述】:

我正在测试一个 python 脚本来向自己发送电子邮件:

import smtplib
fromaddr = '----------@gmail.com'
toaddrs  = '----------@gmail.com'
msg = 'GRRRRR!!!!!!'
username = '----------@gmail.com'
password = '----------'
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(username, password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

其中“----------”表示“私人信息”。这是我收到的错误消息:

Traceback (most recent call last):
  File "ms.py", line 10, in <module>
    server.login(username, password)
  File "/usr/lib/python2.7/smtplib.py", line 615, in login
    raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (534, '5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbvXa\n5.7.14 z7t5LRUd-e-nGxiMetNBY2KaLd8EP3SJVhw2EwccDQjlUi0FxHegAH2YrpvKdYIX2lHz9N\n5.7.14 cMZ_w8kPxuXXhBPMbXA26tWu_HM0tt_4IC8aEct5VRz7z1J22epkLWXUx-COwh4rt2K2-_\n5.7.14 1Lw71Ag70CBpsqYpfzScV-_mF7zHl_NFRflAn5sFnPftR_bX6hhGAHxj5rz1bx0U44sByk\n5.7.14 t-arL3mQhKu-nfFzkcIvjlzuUh3w> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 p18sm2343352qkh.10 - gsmtp')

我做错了什么?

【问题讨论】:

您确定您使用的用户名和密码正确吗?该错误告诉您“请通过您的网络浏览器登录,然后再试一次”+ 它提供了一个指向 Google 帮助的链接,其中涉及用户名和密码不被接受:link 这不是您的直接问题,但您的邮件不包含任何标题。或者更确切地说,它只包含一个标头,并且该标头是GRRRRR!!!!!!,它不是一个有效的标头。实际上它不包括身体。 另外,您需要在您的 Google 帐户中激活允许从不安全来源登录。 【参考方案1】:

您可能需要:

server = smtplib.SMTP_SSL('smtp.gmail.com:465')

代替:

server = smtplib.SMTP('smtp.gmail.com:587')

并且可能不需要 .ehlo ()

另见https://support.google.com/accounts/answer/185833

【讨论】:

以上是关于Python 发送电子邮件不起作用,并给出很长的错误消息的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 从 Outlook 发送电子邮件不起作用

使用 Python Win32 发送电子邮件。将图像添加到电子邮件正文不起作用

SMTP仅发送正文不起作用Python [重复]

抄送电子邮件和多个收件人电子邮件地址不起作用

使用 Google GmailAPI 发送邮件不起作用

宏发送模板