メールを受信するためには、ドメインにどのサーバーがメールを受け取るかを伝える必要があります。この役割を担うのが MXレコード(Mail Exchanger Record) です。
MXレコードの仕組み
メールを送信する際、送信サーバーはまず宛先ドメインのMXレコードをDNSで問い合わせます。返ってきたホスト名(メールサーバー)のIPアドレスを正引きし、そのサーバーにメールを配送します。
送信サーバー
↓ DNSでMXレコードを問い合わせ
→ MX: 10 mail.example.com
↓ mail.example.comのAレコードを問い合わせ
→ A: 203.0.113.1
↓ 203.0.113.1:25(SMTP)に接続してメール配送
### 優先度(プリオリティ)
MXレコードには数値で優先度を設定できます。数値が小さいほど優先度が高く、最初にそのサーバーへの接続を試みます。接続できなかった場合は次に優先度の高いサーバーへ再試行します。
10 aspmx.l.google.com
20 alt1.aspmx.l.google.com
30 alt2.aspmx.l.google.com
複数のMXレコードを設定することで、主サーバーがダウンした際のフェイルオーバーが可能になります。
MXレコードで分かること
ドメインのMXレコードを確認すると、そのドメインがどのメールサービスを利用しているかが分かります。
| MXレコードのホスト名 | メールサービス |
|---|---|
*.aspmx.l.google.com | Google Workspace(旧 G Suite) |
*.mail.protection.outlook.com | Microsoft 365(旧 Exchange Online) |
*.yahoodns.net | Yahoo!メール |
mx.cloudflare.net | Cloudflare Email Routing |
*.iij.ad.jp | IIJ(インターネットイニシアティブ) |
*.xserver.jp | エックスサーバー |
*.sakura.ne.jp | さくらインターネット |
*.lolipop.jp | ロリポップ |
*.conoha.ne.jp | ConoHa WING |
独自ドメインのメールがどのサービスで管理されているかを外部から確認したい場合に活用できます。
MXレコードの設定例
Google Workspace
優先度10 aspmx.l.google.com
優先度20 alt1.aspmx.l.google.com
優先度30 alt2.aspmx.l.google.com
優先度40 alt3.aspmx.l.google.com
優先度50 alt4.aspmx.l.google.com
Google WorkspaceのMXレコードは5件すべて設定するのが推奨です。また、既存のMXレコードはすべて削除してから新しいレコードを設定してください。
Microsoft 365
優先度0 yourdomain-com.mail.protection.outlook.com
テナント固有のホスト名(ドメインのドット . をハイフン - に置換したもの)が使われます。
SPFレコードとの関係
MXレコードを設定するだけではメール送信の信頼性は担保されません。あわせて SPFレコード でどのサーバーからの送信を許可するかをDNSに宣言する必要があります。
Google Workspaceであれば:
v=spf1 include:_spf.google.com ~all
Microsoft 365であれば:
v=spf1 include:spf.protection.outlook.com ~all
MXレコードとSPFが噛み合っていないと、正規のメールが迷惑メールと判定されることがあります。
メール移行時の注意点
TTLを事前に短くする
MXレコードの変更はDNSキャッシュの残存時間(TTL)だけ遅れて反映されます。移行の数日前からTTLを短く(300秒など)しておくと、切り替え後の反映が早まります。
旧サーバーを即削除しない
DNSの切り替え直後は、一部のメールサーバーが古いMXレコードのキャッシュを持ち続けています。旧サーバーのメール受信設定は、切り替えから少なくとも48〜72時間は維持しておくことを推奨します。
MX・SPF・DKIMをまとめて確認する
メール移行後は、MXレコードだけでなくSPF・DKIM・DMARCも正しく設定されているかをあわせて確認してください。移行作業でSPFレコードの更新を忘れると、送信メールがスパム判定される原因になります。
ドメインのMXレコードを確認する方法
コマンドラインで確認する場合:
dig MX example.com
nslookup -type=MX example.com
ブラウザから確認したい場合は、DNSレコード確認ツールやメールサーバー判定ツールでドメインを入力すると、MXレコードの内容と利用中のメールサービスをまとめて確認できます。