如何更改MIMEMultipart对象的属性?

时间:2014-10-20 22:48:02

标签: python email

from email.mime.multipart import MIMEMultipart
msg=MIMEMultipart('mixed')
msg['To']='test'
msg['To']='test2'
print(msg)

产生

Content-Type: multipart/mixed; boundary="===============1302686855105723805=="
MIME-Version: 1.0
To: test
To: test2

--===============1302686855105723805==

--===============1302686855105723805==--

我希望test2能够替换test,但它只会添加到收件人列表中。我不想要那个。我想替换当前的收件人并重用当前的mimemultipart变量/消息,因为我需要将具有相同参数的多封电子邮件发送给不同的收件人,并且我不希望所有这些都在标题中。如何更改当前' To'属性,或丢弃当前' To' MIMEMultipart类型对象中的属性?

2 个答案:

答案 0 :(得分:1)

使用msg.replace_header()覆盖现有标头,例如

from email.mime.multipart import MIMEMultipart
msg=MIMEMultipart('mixed')
msg['To']='test'
msg.replace_header('To', 'test2')
print(msg)

输出:

From nobody Tue Oct 21 09:51:52 2014
Content-Type: multipart/mixed; boundary="===============0295162158244343135=="
MIME-Version: 1.0
To: test2

--===============0295162158244343135==

--===============0295162158244343135==--

答案 1 :(得分:0)

您可以使用replace_header()方法。此方法使用标题顺序和大小写替换消息中找到的第一个匹配标头。如果没有匹配的标题,那么您将获得KeyError

在您的情况下,只需使用msg.replace_header('To','test2')