使用exchangelib检索原始电子邮件标头

时间:2017-10-10 16:06:18

标签: python office365 exchange-server

我已经能够使用exchangelib登录我组织的Office 365电子邮件并使用Python检索邮件。现在,给定一条消息,我想要检索其所有原始标头。 item.headers仅提供一些标题;例如,ToFrom不见了。

1 个答案:

答案 0 :(得分:0)

This article表示您可以使用名为PR_TRANSPORT_MESSAGE_HEADERS的扩展属性,该属性包含标记0x7d和类型String。这是一个完整的示例,可以在收件箱中打印第一条消息的原始标题。

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)