这是我的测试邮件。命名aa.eml
Received: from abcd
Thu, 26 Sep 2019 07:31:55 +0000
Message-ID:<123>
From: TEST@ <abc-def.com donotreply@abc-def.com>
To: TEST <test@test.com>
Subject: Spam Test for Wednesday, September 25, 2019
Date: Thu, 26 Sep 2019 07:31:19 +0000
Reply-To: TEST <abc-def.com donotreply@abc-def.com>
MIME-Version: 1.0
Content-type: Multipart/related; charset=Windows-1252;
boundary="00B105B8_message_boundary"
我email.parser.BytesParser()
用来获取EmailMessage
对象。
我的代码:
>>>from email import policy, parser
>>>aa_email = parser.BytesParser(policy=policy.default).parse(open("aa.eml", 'rb'))
>>>aa_email['from']
'<>'
>>>aa_email['reply-to']
'TEST <"abc-def.com donotreply"@abc-def.com>'
我使用它的原因BytesParser
是我可以获得标头的特定信息,例如:
>>>aa_email['reply-to'].addresses
(Address(display_name='TEST', username='abc-def.com donotreply', domain='abc-def.com'),)
你可以看到,['from']
只是['reply-to']
在一个@
符号上不同,让我无法获得['from']
类似的信息['reply-to']
。
谁能为此提出解决方案(没有正则表达式)?谢谢大家。