如何识别电子邮件属于现有线程或对话

Kno*_*els 15 email email-integration pattern-matching

我们有一个内部.NET案例管理应用程序,可以从电子邮件中自动创建一个新案例.我希望能够识别与原始电子邮件相关的其他电子邮件,以便我们可以防止创建重复的案例.

我观察到许多(但不是全部)电子邮件都有一个看起来很有用的线索索引头.

有人知道我们可以使用的直接算法或包吗?

Bev*_*van 24

据我所知,不会有100%万无一失的解决方案,因为并非所有电子邮件客户端或网关都保留或尊重所有标头.

但是,您将获得相当高的命中率,具体如下:

  • 每封电子邮件都应具有唯一的"消息ID"字段.找到这个,并记录它作为案件的一部分.(见RFC-822)

  • 如果您收到两条具有相同Message-ID的邮件,请丢弃第二条邮件,因为它是重复邮件.

  • 检查"In-Reply-To"字段,如果显示的ID与已知的Message-ID匹配,那么您就知道该电子邮件是相关的.

  • "References"和"Original-Message-ID"标题具有相似的含义.

如果您的系统曾生成电子邮件,请在主题行中包含一个CaseID#,以便在收到回复邮件时可以搜索它(例如:[Case#20081114-01]); 大多数人在回复时不会编辑主题行.

互联网标准RFC-822,RFC-2076RFC-4021可能对进一步阅读有用.

鉴于总会有错过的消息(无论出于何种原因),您可能还需要案例管理系统中的相关功能 - 例如,"关闭为重复案例"或"与重复案例合并",以及工具让它更容易找到重复.


geo*_*car 14

使用JWZ线程算法.

  • 答案至少应该包括摘要而不仅仅是链接。 (3认同)