使用Python发送电子邮件

时间:2015-01-18 13:25:47

标签: python

我正在尝试使用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"

但是,当我尝试执行此脚本时,出现“错误:无法发送电子邮件”消息。我的剧本似乎有什么问题?

3 个答案:

答案 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