メールがメールサーバーを見つける仕組み
送信者
you@gmail.com
MX検索
誰が受け取る?
メールサーバー
優先度10が最初
受信トレイ
配信完了
優先度の数値が小さいものが優先され、大きいものはバックアップ
MXレコードとは?メール配送の仕組みを解説
誰かが you@example.com 宛てにメッセージを送るとき、相手のメールサーバーは、何よりも先に1つの問いに答えなければなりません。example.com 宛てのメールを受け付けるのは、どのマシンかという問いです。その答えが MX レコードです。
MXは Mail Exchange(メール交換)の略です。MXレコードがないと、ウェブサイトが完璧に動いていても、ドメイン宛てのメールは送り返されます。ウェブサイトのレコードとメールのレコードは、完全に独立しています。
メールがメールサーバーを見つける仕組み
送信者
you@gmail.com
MX検索
誰が受け取る?
メールサーバー
優先度10が最初
受信トレイ
配信完了
優先度の数値が小さいものが優先され、大きいものはバックアップ
MXレコードの見え方
example.com. 3600 IN MX 1 aspmx.l.google.com.
example.com. 3600 IN MX 5 alt1.aspmx.l.google.com.
example.com. 3600 IN MX 5 alt2.aspmx.l.google.com.
example.com. 3600 IN MX 10 alt3.aspmx.l.google.com.ホスト名の前にある数字が優先度(preferenceとも呼ばれます)です。そのほかは、標準的なレコードと同じです。
優先度が実際にどう働くか
送信側のサーバーは、MXレコードを優先度順に並べ、順番に試します。最も小さい優先度のホストが接続を拒否したり、タイムアウトしたりすると、次のホストに移ります。これは本物の冗長化です。1台のサーバーがダウンしている間も、メールは流れ続けます。
同じ優先度を持つレコード(上の2つの 5 のエントリ)は、負荷分散されます。送信側はその中からランダムに選び、負荷を両方に分散させます。
MXの宛先が守るべきルール
- 宛先はIPアドレスではなく、ホスト名でなければなりません。
MX 10 93.184.216.34は無効です。その名前にAレコードを設定したうえで、MX 10 mail.example.com.を使ってください。 - 宛先はCNAMEであってはなりません。 仕様では、MXの宛先がアドレスレコードに直接解決されることが求められています。そうでない場合、配送を拒否するメールサーバーもあります。CNAMEとAの違いをご覧ください。
- 宛先には、それ自体の
AまたはAAAAレコードが必要です。 解決されない名前を指すMXは、MXがまったくないのと同じです。
null MX:ドメインがメールを送らないことを宣言する
ドメインがメールを一切受信しないのであれば、ルートゾーンを指す1つのMXレコードで、そのことを明示的に宣言します。
example.com. 3600 IN MX 0 .宛先が単独の . であれば、このドメインはメールを受け付けないという意味です。送信側は、何日も再試行するのではなく、恒久的なエラーですぐに拒否します。また、そのドメインはなりすましの標的として魅力が下がります。メールに使っていない、自分が所有するすべてのドメインに設定する価値があります。
MXレコードがない場合はどうなるか
従来のフォールバックでは、送信側がそのドメインの A レコードを試し、そこへの配送を試みます。これに頼るのはよくありません。挙動はメールサーバーによって異なり、A レコードがメールデーモンのないウェブサーバーやCDNを指している場合は、メッセージが送り返されてしまいます。
重要なポイント
メールを受け取りたいなら、明示的なMXを公開します。メールを受け取りたくないなら、null MXを公開します。空のままにして、Aレコードへのフォールバックがうまくいくことを期待するのは、ドメインがメッセージを気づかないうちに失う原因です。
MXレコードがすべてではありません
MXが決めるのは、メールをどこに配送するかです。ほかの3つのレコードが、そのメールが信頼されるかどうかを決めます。これらがないと、正規のメールが迷惑メールフォルダーに入ってしまいます。
- SPF:ドメインとして送信してよいサーバーを列挙する
TXTレコードです。 - DKIM:送信メールに署名する鍵を公開する
TXTレコードです。 - DMARC:SPFまたはDKIMが失敗したときの処理を受信側に伝える
TXTレコードです。
3つとも、SPF、DKIM、DMARCの解説で扱っています。4つ目の要素である逆引きDNSは、メールを直接送信するサーバーにとって重要です。
メールを失う障害と、その見つけ方
MXの設定ミスが、自ら存在を知らせることはめったにありません。メールが止まるのではなく、減ったり、遅れて届いたり、1人の送信者だけが問題を訴え、ほかの全員は問題なかったりします。知っておくべきパターンを紹介します。
もう使っていないプロバイダーを指しているレコード
メールが謎の消え方をする原因として、最も多いものです。移行によって、旧プロバイダーのMXレコードが新しいレコードと並んで残り、送信側が優先度に従ってそれらに振り分けるため、一部のメッセージが誰も読まないメールボックスに届いてしまいます。症状は、一部の送信者からのメールは届くのに、ほかの送信者からのメールはバウンスもなく消える、というものです。
MXの宛先にアドレスレコードがない
mail.example.com を指すMXがあっても、その名前が解決されなければ、機能的にはMXがまったくないのと同じです。送信側は、すぐにバウンスするか、キューに入れて何日も再試行したあとで諦めます。MXレコードが存在することだけでなく、その宛先が解決されることを、必ず確認してください。
ポート25をブロックしているファイアウォール
DNSは完璧なのに、サーバーに到達できない状態です。受信SMTPはポート25に届きますが、クラウドプロバイダーは、新しいインスタンスではこれを既定でブロックしていることがよくあります。MXの検索は成功しても、接続が完了することはなく、送信側は何も言わずにキューに入れます。
MXレコードを確認する
dig +short example.com MX検索ツールは、MXレコードを優先度順にすでに並べた状態で返し、null MXは、紛らわしい空の値ではなく明示的に表示します。そのため、プライマリが想定どおりのものであることを、ひと目で確認できます。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
このテーマの無料ツール
よくある質問
関連記事
ほぼすべてのゾーンで出会うレコード
TXTレコードを解説:SPF、DKIM、DMARC
あなたのメールと迷惑メールフォルダーの間に立つ、3つのTXTレコード。それぞれの役割、構文の読み方、安全な導入の順序を解説します。
逆引きDNSは検索を逆向きに行う
IPアドレス
93.184.216.34
出発点
PTR検索
in-addr.arpa、自分ではなく先方のゾーン
ホスト名
答え
逆引きゾーンはドメイン所有者ではなく、IPブロックの所有者のもの
逆引きDNSとは?PTRレコードの解説
逆向きに行われる検索です。ホスティングプロバイダーが管理している理由と、設定がないとメールが静かに迷惑メールへ振り分けられる理由を解説します。
ほぼすべてのゾーンで出会うレコード
DNSレコードタイプ徹底解説:完全リファレンス
知っておくべきレコードタイプのすべてについて、役割、書式、そして陥りがちな間違いを、1つのリファレンスページにまとめました。