使用 python 从 Outlook 响应电子邮件中提取正文
Extracting body from Outlook response email using python
我正在编写一个 python 脚本,它从 Outlook 读取电子邮件然后提取正文
问题是当它读取电子邮件回复时,正文包含以前的电子邮件。
有没有办法避免这种情况,只提取电子邮件的正文。
这是我的代码的一部分:
import requests
import json
import base64
utlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
folder = outlook.Folders.Item("UGAP-AMS-L2")
inbox = folder.Folders.Item("Inbox")
mails = inbox.Items
mails.Sort("[ReceivedTime]", False)
for mail in mails:
if mail.UnRead == True :
print(" mail.Body")
这是我得到的:
-当前邮件的邮件正文-
De : "tracker@gmail.fr" tracker@gmail.fr
日期:2021 年 5 月 21 日 à 08:44
À : 我我@outlook.com
对象:对象
-上一封电子邮件的正文-
您必须自己解析正文以切断任何您不想要的内容。
你想要的是不可能的 - 邮件正文是一个自由格式的文本,允许用户在任何地方输入。我个人一直这样做——我只需输入“见下文”并将我的评论插入原始电子邮件中。没有办法将两者分开。
Outlook 对象模型(也不是 MAPI)没有为此提供任何东西。
没有通用的解决方案或特定的 属性 或完成工作的方法。您可以尝试找到自己的从邮件正文中提取最新内容的算法。
我正在编写一个 python 脚本,它从 Outlook 读取电子邮件然后提取正文 问题是当它读取电子邮件回复时,正文包含以前的电子邮件。 有没有办法避免这种情况,只提取电子邮件的正文。
这是我的代码的一部分:
import requests
import json
import base64
utlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
folder = outlook.Folders.Item("UGAP-AMS-L2")
inbox = folder.Folders.Item("Inbox")
mails = inbox.Items
mails.Sort("[ReceivedTime]", False)
for mail in mails:
if mail.UnRead == True :
print(" mail.Body")
这是我得到的:
-当前邮件的邮件正文-
De : "tracker@gmail.fr" tracker@gmail.fr
日期:2021 年 5 月 21 日 à 08:44
À : 我我@outlook.com
对象:对象
-上一封电子邮件的正文-
您必须自己解析正文以切断任何您不想要的内容。
你想要的是不可能的 - 邮件正文是一个自由格式的文本,允许用户在任何地方输入。我个人一直这样做——我只需输入“见下文”并将我的评论插入原始电子邮件中。没有办法将两者分开。
Outlook 对象模型(也不是 MAPI)没有为此提供任何东西。
没有通用的解决方案或特定的 属性 或完成工作的方法。您可以尝试找到自己的从邮件正文中提取最新内容的算法。