使用Python win32com检查电子邮件是回复还是回复

时间:2017-12-26 19:35:55

标签: python email outlook

我使用Python win32com解析来自outlook的电子邮件。我可以从outlook文件夹中获取电子邮件,但我无法验证电子邮件是回复还是回复或转发邮件,我需要检查电子邮件是否是以前邮件的回复(如果是,则查找原始邮件)或电子邮件是转发的邮件。我正在使用以下代码从outlook中获取电子邮件。

{{1}}

2 个答案:

答案 0 :(得分:1)

标题为ConversationID,可以用作message.ConversationID 参考https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.mailitem_properties.aspx

答案 1 :(得分:0)

您可以尝试阅读主题的前三个字符,并确定它是否具有“Re:” - 前缀,因此是一个回复。这种情况应该是大多数情况。

import win32com.client 

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.Folders["xyz@xyz.com"].Folders["Inbox"].Folders["abc"]
messagesReach = inbox.Items
for message in messagesReach:
    if message.Unread == True:
       if message.Subject[:3] == "Re:":
          print(message.body)