0

ストーリーは単純です。1 人のユーザーが新しいディスカッションを作成すると、システムはそれに関する電子メール通知を他のユーザーに送信します。これらのユーザーが通知に返信する場合、その返信は特定のディスカッションへのコメントとして適切にルーティングされる必要があります。

システムが電子メール通知を送信するとき、件名にルーティング コードが含まれます。たとえば、通知の件名は次のようになります。「ディスカッション「Lets Talk」が開始されました{123}」。すべての電子メール クライアントが使用Re: ORIGINAL SUBJECTするため{123}、件名の一部として返されるので、それを解析し、コメントをどこに置くべきかを認識します。

これはすでに機能しています (実際には何年も使用していました) が、現在の実装は少し汚れているように見えるため (特にコードが長くなると)、代替案があれば検討したいと考えています。ほとんどの電子メールクライアントで確実に機能する、これにアプローチするよりエレガントな方法はありますか? 欠落している可能性のある電子メールヘッダー? 似たような?

本当にありがとう

4

1 に答える 1

1

あなたはそれについて言及していないので、あなたがこれを調べたかどうかはわかりません:

メールヘッダーには、メールが返信するメールのメッセージ ID と、このメールが属するスレッドを指定するIn-Reply-To1 つの名前を含める必要があるというフィールドがあります。References

「In-Reply-To:」フィールドは
、新しいメッセージが返信されるメッセージ (または複数のメッセージ) を識別するために使用できますが、
「References:」フィールドは、
会話の「スレッド」を識別するために使用できます。

RFC によると、In-Reply-Toフィールドには「親」メッセージを含める必要がありますがMessage-IdReferencesフィールドは親メッセージのフィールドを引用しReferencesます。

このフィールドの問題は、メール配信のために正しく入力する必要がないため、一部のメールクライアントが正しく入力されないか、まったく入力されない可能性があるため、それらに有用なものがあるという保証がないことです。

In-Reply-To フィールドを使用してスレッド化アルゴリズムを構築し、これらのフィールドでのガベージや悪意のある入力に対して堅牢であると主張するこの記事を見つけました。

于 2013-01-31T09:57:00.073 に答える