>>> header = 'subject'
>>> msg = email.message_from_string(raw_email)
>>> msg[header] = 'Test123'
>>> print msg[header]
=?UTF-8?B?UmU6IFtHQlMgU3lzdGVtYWRtaW5pc3RyYXRpb25dICMxMjogRS1NYWk=?=
=?UTF-8?B?bCBCZW5hY2hyaWNodHVuZyBmw7xyIG5ldWUgVGlja2V0cyBlaW5yaWNodGVu?=
为什么msg[header]
不包含'Test123'
?
答案 0 :(得分:2)
http://docs.python.org/2/library/email.message.html#email.message.Message.setitem
“请注意,这不会覆盖或删除任何具有相同名称的现有标头。如果要确保新标头是包含字段名称的消息中唯一存在的标头,请先删除该字段”
答案 1 :(得分:2)
根据文件:
__ setitem __(name,val)
使用字段名称和值val为消息添加标头。该字段将附加到邮件现有字段的末尾。
请注意,这不会覆盖或删除任何具有相同名称的现有标头。如果要确保新标题是具有字段名称的消息中唯一存在的标题,请首先删除该字段,例如:
del msg['subject']
msg['subject'] = 'Python roolz!'
http://docs.python.org/2/library/email.message.html#email.message.Message