MX レコード (メール交換)

DNS レコードタイプ
ドメインのメールを受け取る必要があるメールサーバーを指定する DNS レコード。メール配信を有効にします。
← 用語集に戻る

MXレコードとは

MX(Mail Exchange)レコードは、ドメインに代わってメールを受信するメールサーバーを指定するDNSレコードです。誰かが[email protected]へメールを送ると、送信側メールサーバーはexample.comのMXレコードを調べ、メッセージの配送先を確認します。

MXレコードの仕組み

メール配送は次のように進みます。

1. 送信者がメールを作成する: [email protected]宛てに作成する

2. 送信者のサーバーが問い合わせる: DNSでexample.comのMXレコードを調べる

3. DNSが返す: 優先度付きのMXレコードを1件以上返す

4. 送信者が接続する: 最優先のメールサーバーへ接続する

5. 利用できない場合: 次の優先度のサーバーを試す

6. 配送または再試行待ち: メールを配送するか、再試行のためキューに入れる

MXレコードの形式

example.com.    IN    MX    10    mail.example.com.

example.com. IN MX 20 mail-backup.example.com.

構成要素:

優先度の数値

優先度はサーバーを試す順序を決めます。

数値が小さいほど優先度が高くなります。後からサーバーを挿入できるよう、10刻みを使う構成が多くあります。

よくあるMX構成

自前ホスティングのメール

@    IN    MX    10    mail.example.com.

mail IN A 203.0.113.50

Google Workspace(Googleの業務メール)

@    IN    MX    1     aspmx.l.google.com.

@ IN MX 5 alt1.aspmx.l.google.com.

@ IN MX 5 alt2.aspmx.l.google.com.

@ IN MX 10 alt3.aspmx.l.google.com.

@ IN MX 10 alt4.aspmx.l.google.com.

Microsoft 365(業務メール)

@    IN    MX    0     example-com.mail.protection.outlook.com.

Zoho Mail(メールサービス)

@    IN    MX    10    mx.zoho.com.

@ IN MX 20 mx2.zoho.com.

@ IN MX 50 mx3.zoho.com.

MXレコードの要件

宛先はホスト名にする

MXレコードはIPアドレスではなくホスト名を指す必要があります。

# Correct

@ IN MX 10 mail.example.com.

# Incorrect - won't work

@ IN MX 10 203.0.113.50

宛先にA/AAAAレコードが必要

メールサーバーのホスト名はIPアドレスに解決できなければなりません。

@      IN    MX    10    mail.example.com.

mail IN A 203.0.113.50

CNAMEを宛先にしない

MXレコードはCNAMEレコードを指すべきではありません(RFC 2181)。

# Avoid this

mail IN CNAME host.provider.com.

@ IN MX 10 mail.example.com.

MXレコードの確認

digを使う:
dig example.com MX

; ANSWER SECTION:

example.com. 300 IN MX 10 mail.example.com.

example.com. 300 IN MX 20 mail-backup.example.com.

DomScanを使う:
curl "https://domscan.net/v1/health?domain=example.com"

# Returns hasMX: true/false in DNS details

MXレコードとメールセキュリティ

MXレコードは、次のメール認証レコードと連携します。

レコード目的
MX受信メールを配送する
SPF送信サーバーを認証する
DKIM送信メッセージに署名する
DMARCポリシーを適用する

適切なメール運用と到達性のため、4種類すべてを設定してください。

MXの問題をトラブルシューティングする

MXレコードがない

MXレコードがないと、一部のサーバーはAレコードの検索にフォールバックしますが、信頼できません。明示的なMXレコードを必ず設定してください。

優先度が誤っている

バックアップサーバーの優先度が意図せず低い(数値が高い)場合、プライマリが失敗するまでメールを受信しません。

ホスト名の解決に失敗する

MXの宛先ホスト名が解決できないと、メール配送に失敗します。メールサーバーのホスト名にAレコードがあることを確認してください。

TTLの考慮

メールプロバイダーを移行するときは、伝播を速めるため事前にMXのTTLを短くし、移行後に通常のTTLへ戻します。

ベストプラクティス

1. 常にMXレコードを持つ: Aレコードへのフォールバックに頼らない

2. バックアップサーバーを設定する: 異なる優先度のMXレコードを複数使う

3. 宛先の解決を検証する: メールサーバーのホスト名にAレコードがあることを確認する

4. メール認証を導入する: MXとともにSPF、DKIM、DMARCを追加する

5. メール配送を監視する: MX設定をテストするツールを使う

この知識を実践する

DomScan の API を使用してドメインの可用性、状態などを確認します。