我们有一个内部.NET案例管理应用程序,可以通过电子邮件自动创建新案例。我希望能够识别与原始电子邮件相关的其他电子邮件,以便我们可以防止创建重复的案例。
我观察到许多(但不是全部)电子邮件都有一个看起来很有用的线索索引标头。
有人知道我们可以使用的直接算法或包吗?
答案 0 :(得分:22)
据我所知,不会有100%万无一失的解决方案,因为并非所有电子邮件客户端或网关都保留或尊重所有标头。
但是,您将获得相当高的命中率:
每封电子邮件都应包含唯一的“消息ID”字段。找到这个,并记录它作为案件的一部分。 (见RFC-822)
如果您收到两封具有相同消息ID的消息,请丢弃第二封消息,因为它是重复消息。
检查“In-Reply-To”字段,如果显示的ID与已知的Message-ID匹配,那么您就知道该电子邮件是相关的。
“引用”和“原始邮件ID”标题具有相似的含义。
如果您的系统曾生成电子邮件,请在主题行中添加一个CaseID#,以便在收到回复邮件时可以搜索它(例如:[Case#20081114-01]);大多数人在回复时都不会编辑主题行。
互联网标准RFC-822,RFC-2076和RFC-4021可能会有助于进一步阅读。
鉴于总会有错过的消息(无论出于何种原因),您也可能需要案例管理系统中的相关功能 - 例如,“关闭为重复案例”或“合并重复案例”,使用工具,以便更容易找到重复。
答案 1 :(得分:14)