BLOG ベアメールブログ
2022.05.31 (火)
メール用語解説MXレコードとは? 仕組みと設定例、確認方法まで解説
送信したメールが「迷惑メール」であると誤判断されることを防ぎ、宛先に確実に届けるためには、DNSの設定を正しく行うことが重要です。
本記事では、DNSの設定の中でもメール配信に最も関連の深い「MXレコード」について、概要と設定例、送信側と受信側での役割、確認方法などを解説します。
目次
MXレコードとは
MXレコード(Mail Exchangerレコード)とは、DNSのリソースレコードの一種で、特定のドメイン宛ての電子メールをどのメールサーバーに転送すればいいかを指定するレコードです。
MXレコードの値には、転送先メールサーバーをホスト名を含む完全修飾ドメイン名(FQDN)で指定します。指定した転送先メールサーバーは、別途AレコードあるいはAAAAレコードでIPアドレスを指定しておく必要があり、MXレコードでCNAMEを指定することはRFC文書(※)によって禁止されています。
MXレコードは、ひとつのドメインに対して複数レコードを記載することができます。それぞれのMXレコードに優先度(preference:プリファレンス)という数値を指定することで、優先度が高いメールサーバーの順に配信が行われます。優先度は0〜65535の範囲内で指定することが可能ですが、一般的には「1」「10」「20」などの数値を指定することが多く、数値が小さいほど優先順位が高くなります。複数のレコードで同じ数値が指定した場合はランダムに配信が行われるため、受信メールサーバーの負荷分散が可能になります。
※RFC 2181「Clarifications to the DNS Specification」 https://datatracker.ietf.org/doc/html/rfc2181
MXレコードの設定例
MXレコードは、例えば以下のように設定します。
TTL※ class type preference data baremail.jp. 3600 IN MX 1 mx01.baremail.jp. baremail.jp. 3600 IN MX 10 mx02.baremail.jp.
それぞれのMXレコードに、メール転送先の優先値として「1」「10」が設定されています。数値が小さいほど優先順位が高くなるため、上記の場合は優先値「1」である「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
・MxToolBox
https://mxtoolbox.com/NetworkTools.aspx?tab=DNS
まとめ
MXレコードはあまり重要視されないことが多いかもしれませんが、メールを正しく宛先に送り届けるためにMXレコードは非常に重要な役割を担っています。誤った設定をしてしまうと、受信側の場合はメールがメールサーバーに届かず、送信側の場合は宛先のメールサーバーから信頼できない送信元であると誤判断され、メールがブロックされる可能性があります。利用中のドメインに対し、MXレコードが適切に設定されているか、今一度確認することをおすすめします。