使用 exchangelib 检索原始电子邮件 headers
Retrieve raw email headers with exchangelib
我已经能够使用 exchangelib 登录我组织的 Office 365 电子邮件并使用 Python 检索邮件。现在,给定一条消息,我想检索其所有原始 headers。 item.headers
只提供部分headers;例如,To
和 From
缺失。
This article 表示您可以使用名为 PR_TRANSPORT_MESSAGE_HEADERS
的扩展 属性,它具有标签 0x7d
和类型 String
。这是一个完整的示例,它打印收件箱中第一条消息的原始 headers。
import exchangelib as E
user = 'wgates@microsoft.com'
password = 'hunter2'
class RawHeaders(E.ExtendedProperty):
property_tag = 0x7d
property_type = 'String'
E.items.Message.register('rawheaders', RawHeaders)
E.items.MeetingRequest.register('rawheaders', RawHeaders)
print("Logging in…")
account = E.Account(
primary_smtp_address = user,
autodiscover = True,
credentials = E.Credentials(username = user, password = password),
access_type = E.DELEGATE)
print(account.inbox.all()[0].rawheaders)
我已经能够使用 exchangelib 登录我组织的 Office 365 电子邮件并使用 Python 检索邮件。现在,给定一条消息,我想检索其所有原始 headers。 item.headers
只提供部分headers;例如,To
和 From
缺失。
This article 表示您可以使用名为 PR_TRANSPORT_MESSAGE_HEADERS
的扩展 属性,它具有标签 0x7d
和类型 String
。这是一个完整的示例,它打印收件箱中第一条消息的原始 headers。
import exchangelib as E
user = 'wgates@microsoft.com'
password = 'hunter2'
class RawHeaders(E.ExtendedProperty):
property_tag = 0x7d
property_type = 'String'
E.items.Message.register('rawheaders', RawHeaders)
E.items.MeetingRequest.register('rawheaders', RawHeaders)
print("Logging in…")
account = E.Account(
primary_smtp_address = user,
autodiscover = True,
credentials = E.Credentials(username = user, password = password),
access_type = E.DELEGATE)
print(account.inbox.all()[0].rawheaders)