電子メールから新しいケースを自動的に作成する内部 .NET ケース管理アプリケーションがあります。重複したケースが作成されるのを防ぐために、元のメールに関連する他のメールを特定できるようにしたいと考えています。
すべてではありませんが、多くの電子メールに、便利そうなスレッド インデックス ヘッダーが含まれていることを確認しました。
使用できる簡単なアルゴリズムまたはパッケージを知っている人はいますか?
電子メールから新しいケースを自動的に作成する内部 .NET ケース管理アプリケーションがあります。重複したケースが作成されるのを防ぐために、元のメールに関連する他のメールを特定できるようにしたいと考えています。
すべてではありませんが、多くの電子メールに、便利そうなスレッド インデックス ヘッダーが含まれていることを確認しました。
使用できる簡単なアルゴリズムまたはパッケージを知っている人はいますか?
私の知る限り、すべての電子メールクライアントまたはゲートウェイがすべてのヘッダーを保持または尊重するわけではないため、100%確実なソリューションはありません。
ただし、次の場合、かなり高いヒット率が得られます。
すべての電子メールメッセージには、一意の「メッセージID」フィールドが必要です。これを見つけて、ケースの一部として記録してください。(RFC-822を参照)
同じメッセージIDを持つ2つのメッセージを受信した場合、2番目のメッセージは重複しているため破棄します。
[返信先]フィールドを確認します。表示されたIDが既知のメッセージIDと一致する場合は、メールが関連していることがわかります。
「References」ヘッダーと「Original-Message-ID」ヘッダーの意味は似ています。
システムでメールが生成される場合は、メールが戻ってきた場合に検索できるように、件名にCaseID#を含めてください(例:[Case#20081114-01])。ほとんどの人は返信するときに件名を編集しません。
インターネット標準RFC-822、RFC-2076およびRFC-4021は、さらに読むのに役立つかもしれません。
(何らかの理由で)見逃されるメッセージが常に存在することを考えると、ケース管理システムに関連する機能も必要になるでしょう。たとえば、「重複ケースとして閉じる」や「重複ケースとマージ」などのツールと、重複を見つけやすくします。
JWZスレッドアルゴリズムを使用します。