MXレコードとは?メール配送の仕組み・優先度・設定方法をわかりやすく解説
MXレコードの基本的な意味から、メールが届くまでの流れ、優先度の考え方、具体的な設定方法、確認方法、よくあるトラブルまでを、わかりやすく解説
目次
- MXレコードとは
- メールが届くまでの流れ
- MXレコードの構成要素
- 優先度の考え方
- MXレコードの設定例
- MXレコードを設定するときの注意点
- 値にはIPアドレスではなくホスト名を指定する
- 値にCNAMEを指定しない
- 不要な古いMXレコードを残さない
- サブドメインのメールにも設定が必要
- MXレコードがない場合はどうなる?
- MXレコードとあわせて設定したいレコード
- MXレコードの確認方法
- コマンドで確認する
- ドメインチェッカーなどのWebツールで確認する
- よくあるトラブルと対処法
- メールが届かない
- 設定を変更したのに反映されない
- 迷惑メールに分類されてしまう
- CDNやプロキシを使っているとメールが届かない
- よくある質問
- MXレコードの「MX」は何の略ですか?
- AレコードとMXレコードの違いは何ですか?
- MXレコードは複数設定してもよいですか?
- ウェブサイトだけでメールは使わない場合、MXレコードは不要ですか?
- まとめ
独自ドメインでメールアドレスを使いたいとき、DNSの設定画面で必ず登場するのが「MXレコード」です。「[email protected]」のようなアドレスでメールを受け取るには、このMXレコードが正しく設定されている必要があります。
一方で、「Aレコードとは何が違うの?」「優先度って何を入れればいいの?」「設定したのにメールが届かない」といった疑問やトラブルも多く、初心者がつまずきやすいポイントでもあります。
この記事では、MXレコードの基本的な意味から、メールが届くまでの流れ、優先度の考え方、具体的な設定方法、確認方法、よくあるトラブルまでを、わかりやすく解説します。
MXレコードとは
MXレコード(Mail Exchanger Record)とは、そのドメイン宛てのメールを受け取るメールサーバーを指定するDNSレコードです。
たとえば、誰かが「[email protected]」宛てにメールを送るとき、送信側のメールサーバーは「example.comのメールはどこのサーバーに届ければいいのか」を調べます。その答えを教えてくれるのがMXレコードです。
郵便にたとえると、ドメイン名は「住所の町名」、MXレコードは「その町宛ての郵便物を受け付ける郵便局の指定」のようなものです。ウェブサイトの表示先を決めるのがAレコード、メールの届け先を決めるのがMXレコード、と役割を分けて覚えるとわかりやすいでしょう。
メールが届くまでの流れ
MXレコードがどのように使われるのか、メールが届くまでの流れを見てみましょう。ここでは、Aさんが「[email protected]」宛てにメールを送る場合を例にします。
- Aさんが自分のメールソフトから、[email protected]宛てにメールを送信する
- Aさんのメールサーバーが、アドレスの「@」より後ろのドメイン(example.com)のMXレコードをDNSに問い合わせる
- DNSから、メールサーバーのホスト名(例:
mail.example.com)と優先度のリストが返される - 送信側のサーバーは、そのホスト名のAレコード(またはAAAAレコード)を調べ、IPアドレスを取得する
- 取得したIPアドレスのメールサーバーに接続し、SMTPという方式でメールを配送する
- 受信側のメールサーバーがメールを受け取り、受信者のメールボックスに保存する
つまり、MXレコードは「メールの配送先となるサーバーの名前」を教える役割を持ち、その名前から実際のIPアドレスを引くときにAレコードが使われます。両者は連携して働いているのです。
MXレコードの構成要素
MXレコードには、主に次の項目があります。
| 項目 | 内容 | 例 |
|---|---|---|
| ホスト名(名前) | どのドメイン(またはサブドメイン)宛てのメールか | @(ドメイン直下) |
| タイプ | レコードの種類 | MX |
| 優先度(プライオリティ) | 複数のメールサーバーがあるときの順位 | 10 |
| 値(メールサーバー名) | メールを受け取るサーバーのホスト名 | mail.example.com |
| TTL | 情報をキャッシュしてよい時間(秒) | 3600 |
Aレコードとの大きな違いは、「優先度」という項目があることと、値にIPアドレスではなくホスト名を指定することです。
優先度の考え方
MXレコードの優先度は、数字が小さいほど優先されるというルールになっています。たとえば、次のように設定したとします。
| 優先度 | メールサーバー |
|---|---|
| 10 | mail1.example.com |
| 20 | mail2.example.com |
この場合、送信側のサーバーはまず優先度10のmail1.example.comに配送を試みます。mail1が停止しているなどの理由で接続できなかった場合に、優先度20のmail2.example.comへ配送を試みます。このように、予備のメールサーバーを用意しておくことで、障害時にもメールを受け取りやすくなります。
同じ優先度を複数のサーバーに設定した場合は、送信側がそれらの中から選んで配送するため、負荷分散のような動きになります。
なお、優先度の数値そのものに特別な意味はなく、大小関係だけが重要です。10、20、30のように間隔を空けて設定しておくと、後から途中に別のサーバーを追加しやすくなります。
MXレコードの設定例
独自ドメイン「example.com」で、Google WorkspaceやMicrosoft 365などのメールサービスを使う場合、サービス側から指定されたMXレコードをDNSに登録します。設定のイメージは次のとおりです。
| ホスト名 | タイプ | 優先度 | 値 |
|---|---|---|---|
@ | MX | 10 | mail.example.com |
実際に入力する値は、利用するメールサービスやレンタルサーバーごとに決まっています。ヘルプページや設定ガイドに記載されている値を、そのまま正確に入力してください。
MXレコードを設定するときの注意点
値にはIPアドレスではなくホスト名を指定する
MXレコードの値には、「192.0.2.1」のようなIPアドレスを直接指定することはできません。必ずホスト名(例:mail.example.com)を指定し、そのホスト名に対してAレコード(またはAAAAレコード)でIPアドレスを設定しておく必要があります。
値にCNAMEを指定しない
MXレコードの値として指定するホスト名は、CNAMEレコード(別名)ではなく、AレコードまたはAAAAレコードを持つホスト名にするのが原則です。CNAMEを指すMXレコードは、メールサーバーによっては正しく配送されない原因になります。
不要な古いMXレコードを残さない
メールサービスを乗り換えたときに、古いサービスのMXレコードが残っていると、メールが古いサーバーに届いてしまい、受信できなくなることがあります。移行後は、不要になったMXレコードを削除し、新しいサービスが指定する値だけが登録されているかを確認しましょう。
サブドメインのメールにも設定が必要
「[email protected]」と「[email protected]」は、別のホスト名として扱われます。サブドメインのアドレスでメールを受け取りたい場合は、そのサブドメイン用のMXレコードも別途設定する必要があります。
MXレコードがない場合はどうなる?
MXレコードが設定されていない場合、送信側のサーバーは、そのドメインのAレコードに登録されているIPアドレスに直接メールを送ろうとします。ただし、これはあくまで補助的な動作であり、多くの場合は意図した結果になりません。たとえば、ウェブサイト用のサーバーにメールが届いてしまい、受信できないといったケースです。
メールを使う予定があるドメインでは、必ずMXレコードを明示的に設定しておきましょう。
逆に、メールをまったく使わないドメインの場合は、「このドメインはメールを受け取らない」という意思表示として、優先度0、値を「.」(ドット)にした「Null MX」を設定する方法もあります。なりすましメールの温床になるのを防ぐ目的で、使われることがあります。
MXレコードとあわせて設定したいレコード
メールを安全に送受信するためには、MXレコード以外にも、次のようなTXTレコードを設定しておくのが一般的です。
| 仕組み | 役割 |
|---|---|
| SPF | そのドメインからメールを送ってよいサーバーを宣言する |
| DKIM | メールに電子署名を付け、改ざんされていないことを証明する |
| DMARC | SPFやDKIMの認証に失敗したメールをどう扱うかを指定する |
これらは、自分のドメインを騙ったなりすましメールを防いだり、送信したメールが迷惑メール扱いされにくくしたりするために重要です。近年は、大手のメールサービスが送信元認証を求める傾向が強まっているため、メールを送る予定がある場合は、MXレコードとあわせて設定を確認しておくことをおすすめします。
MXレコードの確認方法
設定したMXレコードが正しく登録されているかは、次の方法で確認できます。
コマンドで確認する
Mac・Linuxではdigコマンド、Windowsではnslookupコマンドが使えます。
dig example.com MX +short
nslookup -type=MX example.com
実行すると、次のように優先度とメールサーバー名が表示されます。
10 mail.example.com.
ドメインチェッカーなどのWebツールで確認する
ブラウザ上でドメイン名を入力するだけでMXレコードを調べられるWebツールを使えば、コマンド操作なしで確認できます。優先度の順に並んだメールサーバーの一覧や、設定の反映状況を簡単に把握できるため、初心者の方にも便利です。
よくあるトラブルと対処法
メールが届かない
メールが届かないときは、次の点を確認してみましょう。
- MXレコードが登録されているか(typoや入力漏れがないか)
- 値に指定したホスト名が、正しいIPアドレスに解決できるか
- 古いサービスのMXレコードが残っていないか
- 優先度の設定が意図したとおりになっているか
- ネームサーバーの設定が、意図したDNSサービスを向いているか
設定を変更したのに反映されない
DNSの変更は、キャッシュの影響で、反映までに時間がかかることがあります。TTLの時間が経過するまでは、古い情報が使われる場合があります。メールサービスの乗り換えなど、MXレコードを変更する予定がある場合は、事前にTTLを短くしておくと、切り替えがスムーズです。
迷惑メールに分類されてしまう
MXレコードが正しくても、SPF、DKIM、DMARCが未設定だと、送信したメールが迷惑メールとして扱われやすくなります。送信側の認証設定もあわせて見直しましょう。
CDNやプロキシを使っているとメールが届かない
Cloudflareなど、通信をプロキシするサービスを使っている場合、メールサーバーのホスト名に対応するAレコードをプロキシ状態にすると、メールの配送がうまくいかないことがあります。メール用のレコードは、プロキシを経由しない(DNSのみ)設定にするのが一般的です。
よくある質問
MXレコードの「MX」は何の略ですか?
「Mail Exchanger(メール・エクスチェンジャー)」の略です。メールを交換(中継・配送)するサーバーを指定する、という意味を持ちます。
AレコードとMXレコードの違いは何ですか?
Aレコードは、ドメイン名に対してIPv4アドレスを対応付け、主にウェブサイトの表示先を決めます。MXレコードは、そのドメイン宛てのメールを受け取るサーバーを指定します。ウェブサイトとメールを別々のサーバーで運用することも可能です。
MXレコードは複数設定してもよいですか?
はい、複数設定できます。優先度を変えれば、メインと予備のメールサーバーを使い分けられます。ただし、メールサービスによっては、指定された複数のMXレコードをすべて登録する必要があるため、ガイドの指示に従ってください。
ウェブサイトだけでメールは使わない場合、MXレコードは不要ですか?
基本的には不要です。ただし、なりすまし対策として、Null MXやSPFの拒否設定を入れておくケースもあります。
まとめ
MXレコードについて、要点を整理します。
- MXレコードは、そのドメイン宛てのメールを受け取るメールサーバーを指定するDNSレコードである
- 優先度は数字が小さいほど優先され、予備のサーバーを用意する際にも使われる
- 値にはIPアドレスではなくホスト名を指定し、そのホスト名にはAレコードを設定しておく
- サービスの乗り換え時は、古いMXレコードを削除し、新しい値だけを残す
- SPF、DKIM、DMARCもあわせて設定すると、なりすましや迷惑メール扱いを防ぎやすくなる
- 設定後は、dig・nslookup・ドメインチェッカーなどで登録内容を確認する
MXレコードは、独自ドメインのメールを使ううえで欠かせない基本設定です。仕組みを理解しておけば、メールサービスの導入や乗り換え、届かないときのトラブル対応でも、落ち着いて原因を切り分けられるようになります。ドメインの状態を確認したいときは、ドメインチェッカーなどのツールも活用しながら、正しい設定を維持していきましょう。