gpt4 book ai didi

c# - 从引用的回复中解析电子邮件内容

转载 作者:IT王子 更新时间:2023-10-29 03:38:47 24 4
gpt4 key购买 nike

我正在尝试找出如何从可能包含的任何引用的回复文本中解析出电子邮件的文本。我注意到电子邮件客户通常会在某某日期写上“某某写的日期”或在行前加上尖括号。不幸的是,并不是每个人都这样做。有没有人知道如何以编程方式检测回复文本?我正在使用 C# 编写此解析器。

最佳答案

我对此进行了更多搜索,以下是我的发现。基本上有两种情况可以执行此操作:当您拥有整个线程时以及当您没有时。我将把它分为这两类:

当你有线程时:

如果您拥有整个系列的电子邮件,您就可以非常确定要删除的内容实际上是引用的文本。有两种方法可以做到这一点。第一,您可以使用消息的 Message-ID、In-Reply-To ID 和 Thread-Index 来确定单个消息、它的父消息以及它所属的线程。有关这方面的更多信息,请参阅 RFC822 , RFC2822 , this interesting article on threading , 或 this article on threading .重新组装线程后,您可以删除外部文本(例如 To、From、CC 等……行),您就完成了。

如果您正在处理的邮件没有标题,您还可以使用相似性匹配来确定电子邮件的哪些部分是回复文本。在这种情况下,您只能通过相似性匹配来确定重复的文本。在这种情况下,您可能需要查看 Levenshtein Distance algorithm例如this one on Code Projectthis one .

无论如何,如果您对线程过程感兴趣,请查看this great PDF on reassembling email threads .

当您没有线程时:

如果您只看到线程中的一条消息,您就不得不尝试猜测引用的内容。在那种情况下,以下是我见过的不同报价方式:

  1. 一条线(如 outlook 中所见)。
  2. 尖括号
  3. “---原始消息---”
  4. “某某某天,某某写道:”

从那里删除文本,您就完成了。任何这些的缺点是它们都假设发件人将他们的回复放在引用文本的顶部并且没有交错(就像互联网上的旧样式一样)。如果发生这种情况,祝你好运。我希望这对你们中的一些人有所帮助!

关于c# - 从引用的回复中解析电子邮件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/278788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com