python邮件没有主题通过

时间:2011-04-05 16:15:32

标签: python sendmail

我通过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()

3 个答案:

答案 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电子邮件 - 包括主题等。自己动手做容易出错。

http://docs.python.org/library/email