我通过python发送gmail但我没有得到任何主题。我意识到我向你展示的代码没有任何主题,但我尝试了许多变化而没有成功。谁能告诉我如何实现一个主题。每次都会有相同的主题。
fromaddr = 'XXXX@gmail.com'
toaddrs = 'jason@XXX.com'
msg = 'Portal Test had an error'
#provide gmail user name and password
username = 'XXXX'
password = 'XXXXX'
# functions to send an email
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.ehlo()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
答案 0 :(得分:4)
发送Internet电子邮件有两个重要步骤 - 创建RFC-2822邮件,然后使用SMTP发送。您正在查看SMTP部分,但首先没有创建正确的消息。通过这样做更容易证明。
>>> from email.mime.text import MIMEText
>>>
>>> fromaddr = 'XXXX@gmail.com'
>>> toaddrs = 'jason@XXX.com'
>>> subject = 'This is an important message'
>>> content = 'Portal Test had an error'
>>>
>>> # constructing a RFC 2822 message
... msg = MIMEText(content)
>>> msg['From'] = fromaddr
>>> msg['To'] = toaddrs
>>> msg['Subject'] = subject
RFC 2822消息实际上是一段文字,如下所示:
>>> print msg
From nobody Tue Apr 05 11:37:50 2011
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: XXXX@gmail.com
To: jason@XXX.com
Subject: This is an important message
Portal Test had an error
使用此代码,您应该可以使用SMTP代码发送它。请注意,在这两个步骤中都会重复某些数据,例如from和to address。
答案 1 :(得分:3)
您需要填充"Subject" header。
有关如何正确执行此操作的一些示例,请参阅以下页面:18.1.11. email: Examples。第一个或多或少地做你想要的。
答案 2 :(得分:2)
使用Python的电子邮件模块生成格式正确的RFC-822电子邮件 - 包括主题等。自己动手做容易出错。