質問: 受信メールのヘッダーに記載されているMessage-IDについて知りたいです。 1.このMessage-IDというのはオープンネットワークであれば必ず全世界で一意なのでしょうか? 2.Message-IDの桁数に最大桁数の決まりはありますでしょうか 3.Message-IDはメールのキーIDだと思いますが、ヘッダー情報を取得したさいxxx-1234567890@gmail.comのようにドメインがついていたのですが必ずドメイン付きの値なのでしょうか?(コードの振り方にパターンがあるものなのでしょうか)
回答: RFC2822 追記 1.このMessage-IDというのはオープンネットワークであれば必ず全世界で一意なのでしょうか? 一意にすべきものです。ただし、送信するメールソフトやメールサーバーがつけているので、一意でない場合もあります。 2.Message-IDの桁数に最大桁数の決まりはありますでしょうか メールは一行が改行を除いて 998 文字の制限があります。それに準じます。 3.Message-IDはメールのキーIDだと思いますが、ヘッダー情報を取得したさいxxx-1234567890@gmail.comのようにドメインがついていたのですが必ずドメイン付きの値なのでしょうか?(コードの振り方にパターンがあるものなのでしょうか) メールサーバーがつける場合には、そのサーバーのドメインをつけることで一意であろうとします。ドメインをつけなければならないという決まりはありません。 追記 Message-ID > > Windowsマシンの場合、ドメインやユーザー名という概念が希薄なため、きちんと設定されていないことの方が多い。そこで、ドメイン名としてSMTPサーバー名を使ってお茶を濁す事が多いが、要は「他と重複しなければいい」ので、これでも全く問題はない。 > > > しかし、Microsoft Internet Mail&NewsやMicrosoft Outlook Expressなどは、でたらめなMessage-ID:を付加してしまうという問題がある。 > > > 具体的には、標準設定の「LocalHost@default」を強制的に利用しようとするため、一意性が不完全なMessage-IDとなり、重複の可能性が出てくる。 > > > Message-ID: <01bd2b00$7a625160$LocalHost@default> > > このMicrosoftのメーラの出すMessage-IDの$で区切られた二つめ(先の例では7a625160の部分)は送信者のMACアドレスなので「重複しない可能性もある」らしい。 > > > この仕様、一時期大変嫌われました。 追記 Message-ID にはドメインを含めねばならないと RFC2822 に書いてありました。記憶違いでした。 訂正します。