是否可以获取特定电子邮件ID的ID?

问题描述 投票:0回答:1

我正在创建用于在Outlook中发送电子邮件的机器人。机器人工作正常,但我想改进它。目的是向已联系的特定用户发送提醒-重播到现有电子邮件。一切将自动进行,信息(消息ID,提醒次数等)将存储在sqlite数据库中。我需要知道是否有一种方法来获取Outlook消息的ID(据我所知,在发送之前,每条消息都已分配了ID)或一些equalivent。我检查了许多来源,但无法获得满意的答案。感谢任何帮助。

python win32com
1个回答
0
投票

Outlook的对象模型具有EntryID属性:https://docs.microsoft.com/en-gb/office/vba/api/outlook.mailitem.entryid

您可以使用win32com来查找项目:

import win32com.client as win32
outlook = win32.Dispatch("Outlook.Application").GetNamespace("MAPI")

mailID = "00000000D6287E76248B24409DF..." #Abbreviated - these are very long, unique strings
email = outlook.Session.GetItemFromID(mailID)
print(email)

如果需要找出哪个电子邮件具有什么ID,可以遍历一个文件夹并像这样获取它:

folder2iterate = outlook.Folders("[email protected]").folders("FolderName") #FolderName has to be localized to the language you are using. "Inbox" is not a universal name
for email in folder2iterate.Items:
    print(email, email.Sender, email.EntryID)
© www.soinside.com 2019 - 2024. All rights reserved.