BLOG ベアメールブログ
2022.05.31 (火)
HowToガイドMXレコードとは? 書き方と設定例、確認する方法まで解説

Last Updated on 2025.01.30
送信したメールが「迷惑メール」であると誤判断されることを防ぎ、宛先に確実に届けるためには、DNSの設定を正しく行うことが重要です。
本記事では、DNSの設定の中でもメール配信に最も関連の深い「MXレコード」について、書き方と設定例、送信側と受信側での役割、確認の方法などを解説します。
目次
MXレコードとは
MXレコード(Mail Exchangerレコード)とは、DNSのリソースレコードの一種で、特定のドメイン宛ての電子メールをどのメールサーバーに転送すればいいかを指定するレコードです。
MXレコードの書き方
レコードは以下の書式に従って記述します。
[ドメイン名] IN MX [優先度] [メールサーバーのホスト名]
MXレコードの値には、メールサーバーのホスト名を完全修飾ドメイン名(FQDN)で指定します。MXレコードでメールサーバーのIPアドレスを直接指定することはできないため、注意してください。
指定したメールサーバーのホスト名は、別途AレコードあるいはAAAAレコードでIPアドレスを指定しておく必要があります。
また、MXレコードでCNAMEを指定することはRFC文書(※)によって禁止されています。
※RFC 2181「Clarifications to the DNS Specification」 https://datatracker.ietf.org/doc/html/rfc2181
MXレコードの優先度
MXレコードは、ひとつのドメインに対して複数レコードを記載することで、複数のメールサーバーを指定することができます。その時に重要となるのがMXレコードの優先度(preference:プリファレンス)です。
優先度に設定できる数値は、RFCなどによって明確な制限は明示されていませんが、16ビットの整数(0〜65535)の範囲内で指定するのが望ましいと考えられます。一般的には、10〜100の範囲で、10、20、30などの数値を指定することが多いです。
優先度は、数値が小さいほど優先順位が高くなります。複数のMXレコードがある場合、優先順位が高いメールサーバーの順に配信が行われます。 複数のレコードで同じ数値を指定した場合は、それぞれのメールサーバーに対しラウンドロビン方式で均等に配信される形となります。
MXレコードの設定例
MXレコードは、例えば以下のように設定します。
TTL※ | class | type | preference | data | |
---|---|---|---|---|---|
baremail.jp. | 3600 | IN | MX | 10 | mx01.baremail.jp. |
baremail.jp. | 3600 | IN | MX | 20 | mx02.baremail.jp. |
それぞれのMXレコードに、メール転送先の優先値として「10」「20」が設定されています。数値が小さいほど優先順位が高くなるため、上記の場合は優先値「10」である「mx01.baremail.jp」のメールサーバー宛へ最初に配信が行われます。サーバーの障害など何らかの理由で配信が失敗した場合は、優先度の低い「mx02.baremail.jp」の方へ配信が試みられます。
※TTL(Time to live):
DNSにおける、各リソースレコードをキャッシュに保持しても良いとされる時間(秒)を表したもの。上記の場合、このれMXレコードを取得後、最大3600秒(1時間)は保持(キャッシュ)しても良いことを意味します。
MXレコードの他にも、DNSはメール配信において重要な役割を果たしています。DNSについて詳しくは、こちらの記事で解説していますのでぜひご参照ください。
迷惑メール判定されないために注意したいDNSの設定とは? Part1 | ベアメールブログ
MXレコードの役割と仕組み
MXレコードは、メール送受信の流れにおいてどのように使用されているのでしょうか。実はメールを受信する際だけでなく、送信する際にもMXレコードの設定は重要な役割を果たしています。ここではMXレコードが担う役割と仕組みについて、受信者側・送信者側それぞれの場合に分けて解説します。
受信者側MXレコードの役割

メールクライアントからメールが送信されると、メールの送信依頼を受けた送信メールサーバーは宛先(受信者側)ドメインのDNSサーバーに問い合わせを行い、名前解決を行います。DNSに設定されたMXレコードを参照し、そのドメイン宛の電子メールをどのメールサーバーに転送すれば良いかをチェックして、指定されたメールサーバーに対してメールを送信します。
受信者側のMXレコードが定義されていない場合や、定義が誤っている場合は配信不能となり、送信元へ不達(エラー)が発生したことをメールで通知します。
送信者側MXレコードの役割

受信側のメールサーバーはメールを受信した際に、「なりすまし」等が行われていないかどうか、セキュリティチェック(送信元認証)を実施します。そのチェックの一環として、受信側メールサーバーは、受信したメールのヘッダに書かれている送信元ドメインのDNSに問い合わせを行い、そのドメインに対して正しくMXレコードが設定されているか確認します。
MXレコードは受信メールサーバーを指定するレコードのため、メールを送信するだけであれば関係ないと思われがちですが、送信に利用するドメインにMXレコードの設定がないと受信側のセキュリティチェックに引っかかり、送信したメールがブロックされたり、迷惑メールと判定されたりする可能性が高くなります。多くの場合、迷惑メールを送信するスパマーは、偽装した返信不能なメールアドレスからメールを送信するため、MXレコードが設定されていないとスパマーではないかと疑われやすくなってしまうのです。
メールのヘッダ情報とDNSを利用した受信側の「なりすまし」チェックについては、こちらの記事で詳しく解説しています。
迷惑メール判定されないために注意したいDNSの設定とは? Part2 | ベアメールブログ
このように、メール送受信においてMXレコードは重要な役割を担っているため、メールを送信するだけの場合でも確実に設定しておく必要があります。
MXレコードの確認方法
MXレコードが適切に設定されているか確認するには、コマンドを実行するか、外部のWebサービスを利用するといった方法があります。
Windowsの場合:nslookupコマンド
WindowsOS標準のnslookupコマンドを利用します。PCのコマンドプロンプトからnslookupコマンドを使用することで、MXレコードの値が確認できます。
コマンドプロンプトを起動し、下記のようにnslookupのうしろに[-type=mx] [ドメイン名]の書式を入力します。
nslookup -type=mx example.com
Enterキーを押下すると、ドメインに設定されているMXレコードが出力されます。
Linux・macの場合:digコマンド
Linux やmacOSではdigコマンドを使用してMXレコードを確認します。下記のようdigのうしろに[ドメイン名] [mx]の書式でコマンドを実行します。
# dig example.com mx
Enterキーを押下すると、OSに設定されたDNSサーバにDNS問い合わせが行われ、結果が返されます。
Linuxにもnslookupコマンドはありますが、digコマンドを使用することが一般的です。なぜなら、digコマンドはDNS問い合わせの結果を比較的そのまま表示しますが、nslookupコマンドは結果を加工して表示するためです。MXレコードだけを確認したいということであればどちらのコマンドでも問題ありませんが、DNSの挙動をより正確に知るためにはdigコマンドを使用することをおすすめします。
DNS設定確認サイト
OSのコマンドを実行しなくても、DNSの設定確認を行えるWebサービスを利用してMXレコードを確認することができます。フォームにMXレコードを確認したいドメイン名を入力して実行することで、Webサイト上にDNSへの問い合わせ結果が出力されます。
代表的なDNS設定確認サイトは下記の通りです。
cman.jp DNSチェック
http://www.cman.jp/network/support/nslookup.html
チェックしたいドメインを入力し、オプションは「MX」を選択して、「nslookup実行」または「dig実行」をクリックすることでMXレコードを確認することができます。

MxToolBox
https://mxtoolbox.com/MXLookup.aspx
チェックしたいドメインを入力し、「MX Lookup」のボタンをクリックするだけで確認可能です。

まとめ
MXレコードはあまり重要視されないことが多いかもしれませんが、メールを正しく宛先に送り届けるためにMXレコードは非常に重要な役割を担っています。誤った設定をしてしまうと、受信側の場合はメールがメールサーバーに届かず、送信側の場合は宛先のメールサーバーから信頼できない送信元であると誤判断され、メールがブロックされる可能性があります。利用中のドメインに対し、MXレコードが適切に設定されているか、今一度確認することをおすすめします。