使用Python将原始电子邮件与回复分开

使用Python将原始电子邮件与回复分开,python,email,outlook,extract,body-parser,Python,Email,Outlook,Extract,Body Parser,你们中有人知道我如何将原始电子邮件与回复分开吗?我想从对话中获得电子邮件的每一部分,但不包括发件人的姓名或其他详细信息。我尝试了这段代码,它工作得很好,但它只返回最近的电子邮件的正文。我无法得到答复的主体 以下是一个例子: --Original email-- Dear Chadha, I hope that you are doing well. Best Regards, Date:..... Email:..... --reply-- From:.... to:.....

你们中有人知道我如何将原始电子邮件与回复分开吗?我想从对话中获得电子邮件的每一部分,但不包括发件人的姓名或其他详细信息。我尝试了这段代码,它工作得很好,但它只返回最近的电子邮件的正文。我无法得到答复的主体

以下是一个例子:

--Original email-- 
Dear Chadha,

I hope that you are doing well.

Best Regards, 
Date:..... 
Email:..... 
--reply-- 
From:.... 
to:..... 
Dear Yesmine, 
Thank you for asking, 
I am doing well. 
Kindest Regards, 
Date:...
我的问题是,我想把第一封原始邮件从回复中分离出来,并得到两封邮件的正文。我使用的代码只给出了第一封邮件的正文,没有回复。我正在寻找解决办法。我想正则表达式在这种情况下会对我有所帮助,但我不知道该怎么做

def提取器主体(emailString):
敬礼=[“亲爱的”]#包含问候语关键字的列表,如“亲爱的”、“你好”等
再见=[“致意”]#包含“致意”、“再见”等电子邮件页脚的列表
#将电子邮件按换行符分开,并使所有内容都小写
emailLines=emailString.lower().split(“\n”)
normalLines=emailString.split(“\n”)
#提取文本的起点和终点
开始=-1
end=len(电子邮件线路)-1
对于范围内的i(len(emailLines)):
行=电子邮件行[i]
#检查这行中是否有敬礼词
如果len([s表示行礼中的s,如果s表示行礼中的s]),则开始==-1:
开始=i+1
持续
#检查这行中是否有人道别
如果len([s表示s表示再见,如果s表示行])和end==len(emailLines)-1:
结束=i
打破
如果开始==-1:
返回“\n”.join(normalLines[:end])
其他:
返回“\n”.join(normalLines[开始:结束])
extract=extractBody(body).strip()
打印(f“{extract}”)

如果没有任何示例数据和预期结果,这将很难回答。是的,你是对的,我试图添加一封包含一些回复的原始电子邮件的示例,我想分离每条邮件并获取正文我添加了一个文本示例我试图修复你的格式,但我不得不猜测一些事情;请复习。非常感谢!我真的很感激:D