python smtp未设置主题/htm

2024-05-19 20:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

由于某些原因,下面的代码没有正确设置主题字段,当然也不会以HTML格式呈现电子邮件。。。也就是说,当收到电子邮件时,和标签就消失了。在

谢谢!在

def sendEmail (self,remove):

        message = """From: From Postmaster <%s>
        To: To Person <%s>
        MIME-Version: 1.0
        Content-type: text/html
        Subject: blahblah
        <b>This is HTML message.</b>
        <h1>The following email addresses have been removed</h1>
        %s
        """ %(self.sender,self.receivers,remove)

        smtpObj = smtplib.SMTP('localhost')
        smtpObj.sendmail(self.sender, self.receivers, message)         
        print "Successfully sent email"

Tags: to代码fromselfmessage主题emailhtml
2条回答

MIME头中的空白规则是如何处理的。特别是,以空格开头的行被视为前一个标头的延续行。在您的示例中,由于每一行(在第一行之后)以空格开头,所有内容都将被视为From头的值。此外,正如@TokenMacGuy所指出的,MIME需要在消息的头和有效负载之间有一个空行。如果重新格式化以下邮件,则应正确解释:

message = """From: From Postmaster <%s>
To: To Person <%s>
MIME-Version: 1.0
Content-type: text/html
Subject: blahblah

<b>This is HTML message.</b>
<h1>The following email addresses have been removed</h1>
%s
""" %(self.sender,self.receivers,remove)

应该解决你看到的问题。在

或者,您可以使用email包,避免自己管理消息的格式:

^{pr2}$

在文档中:“这里有一个示例,说明如何使用可选的纯文本版本创建HTML消息:”http://docs.python.org/library/email-examples.html#id5

相关问题 更多 >