-1
>>> 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'ですか?

4

2 に答える 2

2

http://docs.python.org/2/library/email.message.html#email.message.Message. セットアイテム

「これは同じ名前の既存のヘッダーを上書きまたは削除しないことに注意してください。新しいヘッダーがフィールド名 name を持つメッセージに存在する唯一のものであることを確認したい場合は、最初にフィールドを削除してください」

于 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 に答える