gpt4 book ai didi

c# - 从回复邮件中删除之前的部分

转载 作者:太空狗 更新时间:2023-10-29 21:52:09 27 4
gpt4 key购买 nike

我正在尝试编写定期接收电子邮件的应用程序。它将每封邮件写入数据库。但有时我会收到看起来像这样的“Re:”电子邮件:

New message

On September 21, 2010 24:26 Someone wrote (a):

| Old message |

格式取决于电子邮件提供商。

是否有任何库可以帮助从电子邮件中删除“Re”部分?也许 IMAP 服务器可以做到这一点?我在数据库中有线程中所有以前的电子邮件,所以我可以拿走它们并在新邮件中搜索。

最佳答案

如果您能够将回复 (RE:) 消息与其作为回复的原始/上一条消息相关联,那么我认为您可以从数据库中获取原始/上一条消息的正文,然后从回复正文中删除该文本。然而,这种方法不会 100% 准确,因为客户可以将 HTML/Rich Text 电子邮件转换为纯文本,反之亦然。在任何这种情况下,这种方法可能都行不通。即便如此,这种技术还是通用的,并且可能在大多数情况下都有效。

此外,电子邮件提供商可能会在回复中将某些标题字段或前导码添加到引用消息的开头。在这种情况下,我认为没有任何“包罗万象”的解决方案。

我的建议是针对一些真正庞大的网络邮件提供商(Gmail、Yahoo、Microsoft 等),了解他们用于回复的格式并相应地解析邮件。此外,您还可以处理一些通用格式。例如,“>”字符通常用于回复中每行引用文本的开头。

如果您打算使用像 C# 这样的语言进行开发,请为自己创建一个像 IReplyFormat 这样的接口(interface),为每个提供者提供相应的实现,可能还有一些通用格式。

我不认为您会找到任何包罗万象/完美的解决方案来解决这个问题,因为有太多不同格式的邮件提供商。但是,我认为您至少可以找到一些技术,例如上面提到的技术,这些技术对您的效果会好很多次,这是目前您所能期望的最好的技术。

关于c# - 从回复邮件中删除之前的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3759478/

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