18

これはおそらく奇妙な質問ですが、先に進んで質問したいと思いました。たとえば、 IMAP SMTPを使用して、特別なクライアントを介して電子メールを送信します。このクライアントは、途中で送信する前に、電子メールメッセージにいくつかのカスタムヘッダーを追加します。受信者はこの電子メールを受信し、私に直接返信します(おそらく、CCも数人です)。

私の質問はこれです:上記の例を考えると、これらのXヘッダーはスレッド内のすべての新しいメッセージを通して持続しますか?

私が考えることができることの1つは、クライアントが送信した元の電子メールメッセージを認識しているということです。この電子メールへの後続のすべての応答には、前の電子メールの「Message-Id」と同じ値を持つ「Reply-To」ヘッダーが含まれます。クライアントから送信された元のメッセージに到達するまで、これらの応答スレッドをクロールできなかった理由がわかりません。これにより、元のカスタムヘッダーが取得されます。

多分私はこれを考えすぎています。助言がありますか?:)

4

2 に答える 2

26

メッセージの返信には、必ずしも元のメッセージが含まれているとは限りません。MUAは、元のサブジェクトの変更された(たとえば、「Re:」が前に付けられた)バージョンを提案する可能性があり、明らかに、アドレスは適切なデフォルトにも使用されます。メッセージの他のコンテンツはいずれも返信の一部を形成しません(引用や転送の場合のように、送信者が意図的にメッセージを含めない限り)。メッセージに含まれるXヘッダーは、確実に応答に含まれません(そのMUAを制御できない場合)。

ただし、元のメッセージを追跡する計画は確かに実行可能です。RFC5322のセクション3.6.4を参照してください。すべてのメッセージには、Message-IDヘッダーが必要であり(必須ではありません)、必要に応じてIn-Reply-ToヘッダーとReferencesヘッダーが必要です。

「Message-ID:」フィールドには、単一の一意のメッセージ識別子が含まれています。「References:」および「In-Reply-To:」フィールドには、それぞれ1つ以上の一意のメッセージ識別子が含まれ、オプションで[空白]で区切られます。

In-Reply-Toは、返信されている(されている)メッセージを識別するために言及され、Referencesは会話のスレッド全体を識別します。Referencesヘッダーは、返信されるメッセージのReferencesヘッダーの内容全体を含むことを目的としているため、スレッド全体を識別するために必要なのは最後のメッセージのみです。

In-Reply-ToReply-Toは同じものではないことに注意してください(後者は、送信者が返信の送信先となるアドレスを指定します)。

元のメッセージがあると仮定すると、応答のReferencesヘッダーを使用して、元のメッセージを識別できるはずです。すべてのMUAが参照または返信先を正しく処理するわけではありませんが、ほとんどの場合は処理します。

于 2011-09-29T02:11:35.823 に答える
5

私の知る限り、電子メールクライアントが理解できないヘッダー行を伝播すると考える理由はありません。ほとんどの場合、件名が保持され(通常、必要に応じて「Re:」が追加されます)、前のメッセージのヘッダーから「To:」と「Cc:」の行が派生しますが、それだけです。一部(すべてではない)が「In-Reply-To」行を生成すると思いますが、それはそれだけです。

クライアントに特定のヘッダーを探してスレッドをクロールバックさせるというアイデアは実行可能かもしれないように思えますが、その機能が必要な場合は独自の電子メールクライアントを作成する必要があり、それでもすべての電子メールクライアントがメッセージスレッドを保持しているわけではないという事実。

于 2011-09-29T01:53:55.073 に答える