Amazon Simple Email Service (Amazon SES) を使用して送信した E メールが、送信者ポリシーフレームワーク (SPF) アラインメントまたは DomainKeys Identified Mail (DKIM) アラインメントに対するドメインベースのメッセージ認証、報告、適合 (DMARC) の検証に失敗しています。どうすれば修正できますか?
簡単な説明
DMARC は、SPF と DKIM を使用して E メールのなりすましを検出する E メール認証プロトコルです。DMARC に準拠するには、メッセージを SPF または DKIM のいずれか、またはその両方で認証する必要があります。
SPF アライメントまたは DKIM アライメントの DMARC 検証の場合、E メールヘッダーの主要コンポーネントは次の通りです。
- メッセージの受信者に表示される差出人のアドレス
- メッセージの送信元を示す E メールの差出人またはエンベロープの差出人のアドレス
- DKIM 署名の d= ドメイン
DMARC は、E メールの差出人またはエンベロープの差出人のドメインを差出人のドメインと一致させることにより SPF アラインメントをチェックします。以下のいずれかのアラインメントが満たされている必要があります。
- 厳格なアラインメント: E メールの差出人またはエンベロープの差出人のドメインは差出人のドメインと同じです。
- リラックスアラインメント: E メールの差出人またはエンベロープの差出人のドメインは差出人ドメインのサブドメインです。
DMARC は、DKIM 署名の d= ドメインと差出人のドメインに一致させることにより、DKIM アラインメントを確認します。以下のいずれかのアラインメントが満たされている必要があります。
- 厳格なアラインメント: d= ドメインは差出人のドメインと同じです。
- リラックスアラインメント: d= ドメインは差出人ドメインのサブドメインです。
解決方法
DMARC 検証に合格するには、E メールが SPF 認証または DKIM 認証のいずれかに準拠している必要があります。
DMARC レコードで SPF または DKIM にリラックスアライメントを使用する
SPF または DKIM にリラックスアラインメントを使用すれば、E メールが DMARC 検証に合格するのに役立ちます。
SPF と DKIM ドメインの DMARC アライメントを確認するには、次のコマンドを実行します。
nslookup -type=TXT _dmarc.example.com
このコマンドは、次のような DMARC レコードを返します。
"v=DMARC1;p=quarantine;pct=25;rua=mailto:hello@example.com"
SPF では、レコードに aspf 文字列が含まれていない (前の例のように)、またはレコードに文字列 aspf=r が含まれている場合、ドメインはリラックスアラインメントを使用します。レコードに文字列 aspf=s が含まれている場合、ドメインは厳格なアラインメントを使用します。
DKIM では、レコードに adkim 文字列が含まれていない、またはレコードに adkim=r という文字列が含まれている場合、ドメインはリラックスアライメントを使用します。レコードに文字列 adkim=s が含まれている場合、ドメインは厳格アライメントを使用します。
厳格なアラインメントからリラックスアラインメントへの変更は、システム管理者が行う必要があります。
SPF を介して DMARC に準拠する
SPF レコードを取得するには、次のコマンドを実行します。
nslookup -type=TXT example.com
このコマンドは、以下のような SPF レコードを返します。
"v=spf1 include:amazonses.com ~all"
メッセージが SPF 経由で DMARC に準拠していることを確認するには、以下を確認します。
1. メッセージは SPF チェックに合格する必要があります。つまり、ドメインの SPF レコードには「include:amazonses.com」が必須です。これは、お客様のドメインに代わって Amazon SES が E メールを送信することを承認します。
2. E メールヘッダーの差出人アドレスのドメインは、送信メールサーバーが受信メールサーバーに指定する E メールの差出人またはエンベロープの差出人のドメインと一致する必要があります。
Amazon SES を使用して E メールを送信する場合、E メールの差出人またはエンベロープの差出人のドメインはデフォルトで amazonses.com であり、差出人ドメインは検証済みのドメインです。これらの値は SPF アラインメントと DMARC 検証に失敗します。
これを解決するには、E メールの差出人の値が検証済みドメインのサブドメインになるようにカスタム E メールの差出人ドメインを設定する必要があります。例えば、検証済みドメイン (差出人ドメイン) が example.com の場合、カスタム E メールの差出人ドメインを mail.example.com に設定できます。これらの値は SPF アラインメントと DMARC 検証に合格します。
注: Amazon SES では、カスタムの E メールの差出人サブドメインの一部として SPF レコードを追加します。手順については、E メールの差出人ドメインの設定をご参照ください。
DKIM を介して DMARC に準拠する
Amazon SES で Easy DKIM を使用すれば、3 つの CNAME レコードが与えられます。各 DKIM レコードを確認するには、各 CNAME で次のコマンドを実行します。
nslookup -type=CNAME example1._domainkey.example.com
コマンドは DKIM レコードを返します。
example1.dkim.amazonses.com.
メッセージが DKIM 経由で DMARC に準拠していることを確認するには、以下を確認します。
1. メッセージには有効な DKIM 署名が必要です。
2. E メールヘッダーの差出人アドレスは、DKIM 署名の d= ドメインと一致する必要があります。
Easy DKIM を設定することをお勧めします。この機能を使用すれば、DKIM を通じて両方の DMARC 検証要件を満たすことができます。E メールに手動で署名することもできますが、作成した DKIM 署名が Amazon SES によって検証されることはありません。