我正在尝试使用Python的smtplib模块向自己发送电子邮件。这是我正在尝试执行的代码:
import smtplib
sender = 'manas.oid@gmail.com'
receivers = ['manas.oid@gmail.com']
message = """From: From Person <manas.oid@gmail.com>
To: To Person <manas.oid@gmail.com>
Subject: SMTP e-mail test
This is a test e-mail message.
"""
try:
smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.sendmail(sender, receivers, message)
print "Successfully sent email"
except smtplib.SMTPException:
print "Error: unable to send email"
但是,当我尝试执行此脚本时,出现“错误:无法发送电子邮件”消息。我的剧本似乎有什么问题?
答案 0 :(得分:2)
您没有登录,也没有启动与smtpObj.starttls()
的连接。
答案 1 :(得分:2)
要添加@Malik所说的内容,以下是您在使用GMail执行任何操作之前需要执行的步骤(提供的安全性较低的应用可以访问您的帐户,请参阅下文 )。
conn = SMTP('smtp.gmail.com',587)
conn.ehlo()
conn.starttls()
conn.ehlo()
conn.login(username,pwd)
conn.sendmail(username, emailID, message)
请注意,在最近更改GMail后,您需要明确允许安全性较低的应用访问您的帐户。 GMail会阻止您的登录请求,直到您启用它为止。链接以启用安全性较低的应用访问:https://support.google.com/accounts/answer/6010255?hl=en
答案 2 :(得分:0)
Gmail不允许您从帐户发送未经身份验证的电子邮件。 而是使用Gmail API发送电子邮件。下面是一些有用的链接:
身份验证:https://developers.google.com/gmail/api/auth/web-server
电子邮件:https://developers.google.com/gmail/api/guides/sending