質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Sendmail

Sendmailは、インターネットで電子メールを送受信するサーバソフトウェア(MTA)です。ユーザーが送信したメールを受け、他メールサーバへ引き渡しバケツリレー式に配送したり、届いたメールをユーザーが受け取るまでの間保管するといった働きをします。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

Q&A

解決済

1回答

9690閲覧

メールのメッセージIDについて

enigumalu

総合スコア192

Sendmail

Sendmailは、インターネットで電子メールを送受信するサーバソフトウェア(MTA)です。ユーザーが送信したメールを受け、他メールサーバへ引き渡しバケツリレー式に配送したり、届いたメールをユーザーが受け取るまでの間保管するといった働きをします。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

0グッド

2クリップ

投稿2017/03/09 00:18

受信メールのヘッダーに記載されているMessage-IDについて知りたいです。
1.このMessage-IDというのはオープンネットワークであれば必ず全世界で一意なのでしょうか?
2.Message-IDの桁数に最大桁数の決まりはありますでしょうか
3.Message-IDはメールのキーIDだと思いますが、ヘッダー情報を取得したさいxxx-1234567890@gmail.comのようにドメインがついていたのですが必ずドメイン付きの値なのでしょうか?(コードの振り方にパターンがあるものなのでしょうか)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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 に書いてありました。記憶違いでした。
訂正します。

投稿2017/03/09 00:27

編集2017/03/09 01:01
Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enigumalu

2017/03/09 06:48

非常に詳細なご回答ありがとうございます!かなり理解できました >送信するメールソフトやメールサーバーがつけている メールが受信した時の状態を見ているので送り側(gmailやyahooなど)のサーバー設定or送信アプリの送り方(sendmailなど)に完全に依存してしまうものですよね… この情報を利用して一意のDB項目にしようとしていたのですがさすがにリスクが大きでしょうか?
Zuishin

2017/03/09 06:57

ほとんど大丈夫だと思いますが、万一同じものがあった時の処理が増えますね。
enigumalu

2017/03/09 07:19

恐らくinsertした時に同一のIDが既にある場合エラーを吐くか、別途こちらで採番コードを作成してinsertするという感じでしょうか。 メールなのでロス出来ない事を考えると最初からミリ秒またはuuidをキーとして利用するかが良いかもと考えてます。 もう1つ>そのサーバーのドメインをつけることで一意であろうとします。 あくまで一意性の担保であってメールアドレスに関連して作成されているものではなく、また個人情報に該当する手合いのものでもないですよね?
Zuishin

2017/03/09 07:36

私は個人情報には当たらないと考えますが、実際のところは知りません。メール本文は個人情報に当たる可能性が高いと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問