Python 如何更改MIMEMultipart对象的属性?

Python 如何更改MIMEMultipart对象的属性?,python,email,Python,Email,产生 from email.mime.multipart import MIMEMultipart msg=MIMEMultipart('mixed') msg['To']='test' msg['To']='test2' print(msg) 我希望test2取代test,但它只是添加到收件人列表中。我不想那样。我想替换当前收件人并重用当前的mimemultipart变量/消息,因为我需要向不同的收件人发送具有相同参数的多封电子邮件,并且我不希望所有邮件都出现在邮件头中。如何在MIMEMul

产生

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

我希望test2取代test,但它只是添加到收件人列表中。我不想那样。我想替换当前收件人并重用当前的mimemultipart变量/消息,因为我需要向不同的收件人发送具有相同参数的多封电子邮件,并且我不希望所有邮件都出现在邮件头中。如何在MIMEMultipart类型的对象中更改当前“To”属性的值,或放弃当前“To”属性?

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

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

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

--===============1302686855105723805==--
输出:

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

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

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

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

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

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