首页 > 解决方案 > 在 Python 3.7 中使用 ExchangeLib 读取 Outlook 中的自定义标签/标志

问题描述

我正在阅读 Outlook 中包含自定义标签/标志的邮件。其中一个是标签“已批准”。我正在尝试使用 python 中的 ExchangeLib 库从标记为“已批准”的特定发件人访问邮件。

我尝试了 ExchangeLib 库中可用的多种方法,但没有运气。我只是想在控制台中打印出这个标签“已批准”。我尝试了以下方法:

ID_ELEMENT_CLS account add_field attach attachments body categories conversation_id culture datetime_created datetime_received datetime_sent deregister detach display_cc display_to effective_rights folder has_attachments headers importance in_reply_to is_associated is_draft is_from_me is_resend is_submitted is_unmodified item_class last_modified_name last_modified_time mime_content parent_folder_id register reminder_due_by reminder_is_set reminder_minutes_before_start remove_field response_objects sensitivity size subject supported_fields text_body unique_body validate_field web_client_edit_form_query_string web_client_read_form_query_string

Python - 3.7 Exchangelib - 3.3.2

图像“Customized_Tags”包含“已批准”标签

请参阅下面的代码快照:

from exchangelib import Credentials, Account

credentials = Credentials('john@example.com', 'topsecret')
account = Account('john@example.com', credentials=credentials, autodiscover=True)
for item in account.inbox.all().order_by('-datetime_received')[:100]:
    #below is my requirement
    if item.tag == "Approved":
        print(item.tag, item.sender)
    else:
         pass

标签: python-3.xexchangelib

解决方案


标志是 Exchange 中所谓的扩展属性。在https://ecederstrand.github.io/exchangelib/#extended-properties有关于在 exchangelib 中使用扩展属性的信息

您必须找到代表包含标志数据的扩展属性的魔术令牌,然后在 exhcangelib 中定义一个自定义字段并将其注册为一个名为tag.


推荐阅读