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

使用Python win32com检查电子邮件是回复还是响应,python,email,outlook,Python,Email,Outlook,我正在使用Python win32com解析outlook中的电子邮件。我可以从outlook文件夹中获取电子邮件,但我无法验证该电子邮件是否为回复、回复或转发邮件,我需要检查reiceved电子邮件是否为以前邮件的回复。如果是,则查找原始邮件或电子邮件是否为转发邮件。我正在使用以下代码从outlook获取电子邮件 import win32com.client outlook = win32com.client.Dispatch("Outlook.Application").GetNames

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

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:
       print(message.body)

您可以尝试读取主题的前三个字符,并确定它是否有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)
嗨,标题是ConversationID,可以用作message.ConversationID
请参阅

查找回复中的标题。感谢您的回复,但它显示了属性错误。我猜您没有以正确的方式查找标题。得到答案后,标题为ConversationID,其工作方式与message.ConversationID类似。感谢您的帮助@BarmarThanks为您回复,我们可以这样做,但我们无法找到原始邮件,而且如果发件人没有在主题中提到RE:那么这将失败。这是正确的,但我没有找到其他方法。消息的属性并没有说明它是回复还是响应。甚至在Mailitem的[property list][1]中也没有一个属性可以提供该信息。[基本上,我需要找到电子邮件链,用外行的语言,我想阅读以前电子邮件的回复,就像对话一样。例如,我给某人发送了一封邮件,要求批准某件事。作为回复,我收到了一封邮件,说明批准,然后我需要找到批准的原始邮件。得到答案,标题是ConversationID,这将像message.ConversationID一样工作。感谢您的帮助@Markus schwer您能接受您的答案吗?这样,发现此问题的人可以看到答案吗?