-1
>>> header = 'subject'
>>> msg = email.message_from_string(raw_email)   
>>> msg[header] = 'Test123'
>>> print msg[header]
=?UTF-8?B?UmU6IFtHQlMgU3lzdGVtYWRtaW5pc3RyYXRpb25dICMxMjogRS1NYWk=?=
 =?UTF-8?B?bCBCZW5hY2hyaWNodHVuZyBmw7xyIG5ldWUgVGlja2V0cyBlaW5yaWNodGVu?=

Why doesn't msg[header] contain 'Test123'?

4

2 回答 2

2

http://docs.python.org/2/library/email.message.html#email.message.Message。设置项

“请注意,这不会覆盖或删除任何现有的同名标头。如果要确保新标头是消息中唯一存在的具有字段名称的标头,请先删除该字段”

于 2013-08-05T14:22:51.250 回答
2

根据文档:

__setitem__(名称,值)

使用字段名称 name 和值 val 向消息添加标题。该字段附加到消息现有字段的末尾。

请注意,这不会覆盖或删除任何现有的同名标头。如果要确保新标头是消息中唯一具有字段名称 name 的标头,请先删除该字段,例如:

del msg['subject']
msg['subject'] = 'Python roolz!'

http://docs.python.org/2/library/email.message.html#email.message.Message

于 2013-08-05T14:23:07.813 回答