MXレコードとは?SMTPとの関係

目次
MXレコードとSMTPの関係を理解してメール配送の仕組みを学ぼう
メールサーバを構築する際に必ず登場するDNSレコードがMXレコードです。
SMTPサーバはメールを配送する際にDNSへ問い合わせを行い、配送先ドメインのMXレコードを取得します。
そのためMXレコードが正しく設定されていないと、メールが届かなかったり配送遅延が発生したりする可能性があります。
メール配送の仕組みを理解するためには、SMTPとMXレコードの関係を理解することが重要です。
本記事ではMXレコードの役割や設定方法、SMTPとの関係について解説します。
MXレコードとは
MX(Mail Exchange)レコードとは、メールを受信するメールサーバを示すDNSレコードです。
メール配送時にSMTPサーバが参照する重要な情報になります。
DNSには様々なレコードがありますが、メール配送において最も重要なのがMXレコードです。
MXの意味
MXはMail Exchangeの略です。
直訳すると「メール交換サーバ」となります。
実際には「このドメイン宛のメールを受信するSMTPサーバ」を意味します。
なぜMXレコードが必要なのか
Webサーバの場合はAレコードを参照して接続できます。
しかしメールサーバではどのサーバがメールを受信するかを明示する必要があります。
そのためMXレコードが利用されます。
メール配送の流れ
SMTPサーバはメール配送時に以下の処理を行います。
user@example.com
↓
example.comを取得
↓
MXレコード問い合わせ
↓
メールサーバ取得
↓
SMTP接続
↓
メール配送
配送先サーバを特定するためにMXレコードが利用されます。
実際のMXレコード例
example.comのMXレコード例です。
example.com. IN MX 10 mail.example.com.この設定はmail.example.comがメール受信サーバであることを意味します。
MXレコードの構成
MXレコードは主に2つの要素で構成されます。
example.com. IN MX 10 mail.example.com.
| 項目 | 意味 |
|---|---|
| 10 | 優先度 |
| mail.example.com | メールサーバ名 |
優先度が小さいほど優先的に利用されます。
優先度(Preference)とは
MXレコードには優先順位があります。
数値が小さいほど優先度が高くなります。
例えば次のような設定です。
example.com. IN MX 10 mail1.example.com.
example.com. IN MX 20 mail2.example.com.通常はmail1が利用されます。
冗長化構成とは
メールサーバ障害に備えて複数のMXレコードを登録できます。
example.com. IN MX 10 mail1.example.com.
example.com. IN MX 20 mail2.example.com.mail1が停止した場合はmail2へ配送されます。
企業環境でよく利用される構成です。
SMTPサーバはどのようにMXを利用するのか
例えば以下のメールを送信するとします。
user@gmail.com
送信側SMTPサーバはgmail.comのMXレコードを検索します。
取得したメールサーバへSMTP接続を行います。
digコマンドで確認する
LinuxではdigコマンドでMXレコードを確認できます。
$ dig MX example.com最もよく利用される確認方法です。
実行例
$ dig MX gmail.com
gmail.com. 300 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 300 IN MX 10 alt1.gmail-smtp-in.l.google.com.Gmailの受信メールサーバ一覧が表示されます。
nslookupで確認する
Windows環境ではnslookupも利用できます。
> nslookup -type=MX example.comWindowsサーバ運用でよく利用されます。
hostコマンドで確認する
Linuxではhostコマンドも利用できます。
$ host -t MX example.com簡単にMXレコードを確認できます。
MXレコードとAレコードの関係
MXレコードにはホスト名を指定します。
そのため対応するAレコードが必要です。
例えば以下です。
example.com. IN MX 10 mail.example.com.
mail.example.com. IN A 192.168.60.101両方の設定が必要になります。
MXレコードへIPアドレスは指定できるか
MXレコードにはIPアドレスを直接指定できません。
必ずホスト名を指定します。
誤った例です。
example.com. IN MX 10 192.168.60.101これは正しくありません。
MXレコードがない場合はどうなるか
RFCではMXレコードが存在しない場合、Aレコードを参照する仕組みがあります。
例えば以下です。
example.com. IN A 192.168.60.101ただし実務ではMXレコードを設定することが推奨されています。
メール配送時のDNS問い合わせ
SMTPサーバは複数回DNS問い合わせを行います。
MX問い合わせ
↓
Aレコード問い合わせ
↓
SMTP接続
DNSとSMTPは密接に連携しています。
Google WorkspaceのMXレコード例
Google Workspaceでは複数のMXレコードを設定します。
ASPMX.L.GOOGLE.COM
ALT1.ASPMX.L.GOOGLE.COM
ALT2.ASPMX.L.GOOGLE.COM冗長化された構成になっています。
Microsoft 365のMXレコード例
Microsoft 365でも専用のMXレコードを利用します。
example-com.mail.protection.outlook.comMicrosoftが提供するメールサーバへ配送されます。
よくある設定ミス
MXレコード設定では次のミスが発生しやすくなります。
- Aレコード未設定
- ホスト名間違い
- 優先度設定ミス
- 古いサーバ情報が残っている
- DNS反映待ち
メールが届かない原因としてよく発生します。
メールが届かない時の確認項目
まず以下を確認しましょう。
$ dig MX example.com
次にメールサーバへ接続できるか確認します。
$ telnet mail.example.com 25SMTP接続できれば設定は概ね正常です。
逆引きDNSとの関係
メール配送ではMXだけでなくPTRレコードも重要です。
逆引きDNSが設定されていない場合、迷惑メール判定されることがあります。
企業メールサーバでは設定が推奨されています。
実務でのメールサーバ構築例
一般的な構成例です。
example.com. IN MX 10 mail.example.com.
mail.example.com. IN A 203.0.113.10小規模なメールサーバではこの構成が基本となります。
まとめ
MXレコードはメールを受信するSMTPサーバを示すDNSレコードです。
SMTPサーバはメール配送時にMXレコードを参照し、配送先メールサーバを決定します。
メールシステムではAレコードやPTRレコードと合わせて重要な役割を担っています。
メールサーバ構築や障害調査を行う上で、MXレコードの仕組みは必ず理解しておきたい知識です。





