当社には、電子メールから新しいケースを自動的に作成する社内 .NET ケース管理アプリケーションがあります。重複したケースが作成されないように、元の電子メールに関連する他の電子メールを識別できるようにしたいと考えています。
すべての電子メールではありませんが、多くの電子メールに、便利そうなスレッド インデックス ヘッダーが含まれていることに気づきました。
使用できる簡単なアルゴリズムまたはパッケージを知っている人はいますか?
ベストアンサー1
私の知る限り、すべての電子メール クライアントまたはゲートウェイがすべてのヘッダーを保存または尊重するわけではないため、100% 確実な解決策は存在しません。
ただし、次の方法ではかなり高いヒット率が得られます。
すべての電子メール メッセージには、固有の「メッセージ ID」フィールドがあります。これを見つけて、ケースの一部として記録してください。(RFC-822)
同じメッセージ ID を持つ 2 つのメッセージを受信した場合、2 番目のメッセージは重複しているため破棄します。
「In-Reply-To」フィールドを確認し、表示される ID が既知のメッセージ ID と一致する場合、電子メールが関連していることがわかります。
「References」ヘッダーと「Original-Message-ID」ヘッダーは同様の意味を持ちます。
システムで電子メールが生成される場合は、返信メールを受け取ったときに検索できるように、件名にケース ID 番号を含めます (例: [ケース番号 20081114-01])。ほとんどのユーザーは返信時に件名を編集しません。
インターネット標準RFC-822、RFC-2076そしてRFC-4021さらに読むと役に立つかもしれません。
見逃されるメッセージは常に存在するため (理由は問いません)、ケース管理システムに「重複ケースとしてクローズ」や「重複ケースとマージ」などの関連機能や、重複ケースを簡単に見つけられるツールも必要になるでしょう。