メールヘッダの中でもDate:およびMessage-ID:は扱い方に注意が必要です。
(その1)では、Date:およびMessage-ID:に記述がない場合はSMTPサーバ(正確にはMTA(Message Transfer Agent))が追加することを述べましたが、送信者のメールソフトで追加することも当然可能です。ただしその場合には以下のフォーマットに従う必要があります。
|
|
|
Message-ID:の利用方法はいろいろありますが、代表的なものとしては送信したメールとそのメールに対して返信されてきたメールとの紐付け(スレッド)を行うことです。返信時にはIn-Reply-To:というメールヘッダに、返信の元となるメールのMessage-ID:を記述することとなっています。これにより返信されたメールを受け取った送信者はメールの紐付け(スレッド)を行うことができます。
Message-ID:は一般的にはSMTPサーバが付加します。この場合、そのままでは送信者のメールソフト上のメールにMessage-ID:が残りません。そのため、紐付けを行う場合には、CC(Carbon
Copy):やBCC(Blind Carbon Copy):に自分のアドレスを追加し、Message-ID:を送信者のメールソフトに渡す必要があります。このような手間を省くため、メールソフトでMessage-ID:を追加している例も多く見られます。
なお、Message-ID:は一部形式が統一されていないこともあり、一意であることが保証されているものではありません。
Date:について、弊社ではクライアントマシンの時刻よりもサーバマシンの時刻を信頼し、SMTPサーバによって追加するものという立場を取っております。
しかしながら、Date:フィールドの正しい定義は「メッセージが転送できるようになった」時刻を表すものであり、「メッセージを転送した」時刻ではありません。メッセージをMTAが受け取った時刻(メッセージを転送した時刻)はReceived:フィールドにも記されるため、Date:はクライアントの時刻によって付加すべきであるともいえます。
ダイアルアップなどの環境ではメールの作成後に送信ボタンを押してから、しばらくSMTPサーバに転送しないこともあり、クライアントの時刻を基準とするとDate:がかなり過去のものとなってしまうこともあります。
サーバまたはクライアントの時刻のどちらを適切と考えるかはそのメール送受信機能を追加するソフトの目的に依存するものと思われます。MAILOCXはどちらの場合でも実現することが可能です。 |