既存 MX レコードに SES の MX レコードを追加しないでください

2024.05.08

はじめに

こんにちは、daishi です。

カスタム MAIL FROM ドメインや SES メール受信にて MX レコードを DNS に追加することがありますが、この時の注意点がありますので紹介します。

TL;DR

MX レコードがあるDNSレコード名に SES の MX レコードを追加しないでください。
メール受信が既存のメールサーバーと SES のどれか一つに行われるため、一部のメールがランダムに受信できず何通かのメールが欠落し業務影響が出るためです。

MX レコードを複数持つ意味

MX レコードは可用性向上のために以下のように複数レコードを設定することが可能です。

example.com MX 1 mail-01.example.com
example.com MX 10 mail-10.example.com
example.com MX 20 mail-20.example.com

この場合、「1, 10, 20」が優先順位になるため、メール送信側は以下の動作を行うことが期待されます。

  1. 優先度の最も高い(=1) mail-01.example.com にアクセスします。メールを送信できた場合はこの時点で送信を終了します。
    送信に失敗した場合は次の優先順位の高いメールサーバー mail-10.example.com へメール送信を試行します。
  2. 2番目に優先度の高い(=10) mail-10.example.com にアクセスします。メールを送信できた場合はこの時点で送信を終了します。
    送信に失敗した場合は次の優先順位の高いメールサーバー mail-20.example.com へメール送信を試行します。
  3. 3番目に優先度の高い(=20) mail-20.example.com にアクセスします。メールを送信できた場合はこの時点で送信を終了します。
    送信に失敗した場合は優先順位の高いメールサーバーがないため、送信エラーとなります。

上記のような手順で行われるため、 MX レコードに設定したメールサーバーは自分自身でメールボックスを持たず、共有フォルダやメールボックスサーバーへ配信するなど、メール受信側で受信メールを一括管理する必要があります。

既存メールサーバーと SES が同じ MX レコードを設定する場合の問題点

前項の動作の設定に SES カスタム MAIL FROM ドメイン用の MX レコード (feedback-smtp.region.amazonses.com) と SES メール受信の MX レコード (inbound-smtp.region.amazonaws.com) を追加した場合の動作を考えてみます。

example.com MX 1 mail-01.example.com
example.com MX 10 mail-10.example.com
example.com MX 20 mail-20.example.com
# 以下を追加
example.com MX 10 feedback-smtp.region.amazonses.com
example.com MX 10 inbound-smtp.region.amazonaws.com
  1. 優先度の最も高い(=1) mail-01.example.com にアクセスします。メールを送信できた場合はこの時点で送信を終了します。
    送信に失敗した場合は次の優先順位の高いメールサーバーを選択し試行します。
  2. 2番目に優先度の高い(=10) 以下のいずれか一つのメールサーバーにアクセスします。メールを送信できた場合はこの時点で送信を終了します。
    • mail-10.example.com
    • feedback-smtp.region.amazonses.com
    • inbound-smtp.region.amazonaws.com

    メールサーバーはランダムに選択されるため、本来メールを受信すべき mail-10.example.com に送信されない可能性があります。
    送信に失敗した場合は次の優先順位の高いメールサーバー mail-20.example.com へメール送信を試行します。

  3. 3番目に優先度の高い(=20) mail-20.example.com にアクセスします。メールを送信できた場合はこの時点で送信を終了します。
    送信に失敗した場合は優先順位の高いメールサーバーがないため、送信エラーとなります。

メール送信ソフトウェア、SMTPサーバーの動作にもよりますが、一般的に上記のような動作を行うため、単一のメールボックスに送信されないメールサーバーを MX レコードに追加することは安定的なメール受信に影響する可能性があります。
また、カスタム MAIL FROM ドメインと SES メール受信に使用するドメイン名は別の名前を指定する必要があります。

まとめ

SES カスタム MAIL FROM ドメイン、 SES メール受信の MX レコードを作成する必要がある場合は以下の点に注意し設計することがベストプラクティスです。

  • 既存のメールサービスの MX レコードに カスタム MAIL FROM ドメイン、 SES メール受信の MX レコードを追加することはできません。
    既存のメール受信に影響が出た結果、業務影響が出る可能性が非常に高いです
  • カスタム MAIL FROM ドメインは未使用のサブドメイン名を使用してください。
    既存のサブドメインを流用すると意図しない動作になる可能性があります。
  • SES メール受信を使用する場合も同様に 既存の MX レコードがないことを確認の上、設定ください。

MXレコードは混ぜたら危険」と覚えておくと良いでしょう。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。
「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、[アノテーション株式会社 採用サイト] をぜひご覧ください。