数日前に、独自ドメインのメール送信をSendGridからResendへ変更しました。
送信者認証のSPFやDKIMについては、Resendの設定の中で実施しました。
しかし、DMARCについては設定の流れの中には含まれていないので、そのままでは使用できません。
そこで、なりすまし防止強化のためDMARCを設定することにします。
DMARCとは
そもそもDMARCが何かというと、、、
SPFやDKIMで認証されなかったメール(なりすまし判定されたメール)をどのように処理するかを受信メールサーバへ指示するものです。
指示する内容は以下の通りです。
- none:指示なし(そのまま配信)
- quarantine:迷惑メールフォルダへ入れる
- reject:拒否する(送り返す)
DMARCを設定する
DNSレコードへ追加することで設定ができます。
まずは、DMARCの設定をしてもメール送信に問題ないことを確認するため、指示内容は none として設定して確認します。
設定方法としては、以下のレコードをDNSへ追加します。
ドメインはexample.comとしています。
実際には、ご自身のドメイン名に変更してください。
ホスト:_dmarc.example.com
タイプ:TXT
TTL:自動(好きな値)
データ:”v=DMARC1; p=none; pct=100; rua=mailto:[email protected]”
ドメインメールから、Gmailなどへ送信して受け取ることができるかを確認します。
Gmailで受信した場合、メッセージソースを見てみましょう。
SPF、DKIM、DMARCが「PASS」となっていれば問題ありません。
特にメール送信に問題がなければ、DMARCレコードを変更します。
STEP1では、送信者認証に失敗してもそのまま配信されるようになっています。
ここを、quarantine もしくは reject へと変更します。
ホスト:_dmarc.example.com
タイプ:TXT
TTL:自動(好きな値)
データ:”v=DMARC1; p=reject; pct=100; rua=mailto:[email protected]”
_dmarkではなく_dmarcなので注意しましょう。
Cloudflareなら無料プランでもdmarcのログ解析をしてくれるのでおすすめです!
注意点
SPFやDKIMは事前に設定する
DMARCは、SPFやDKIMで弾かれたメールをどう処理するかを指示するものなので、SPFとDKIMは設定済なのが前提です。
事前にSPFやDKIMが機能していることを確認しましょう。
p=noneのまま放置しないようにしましょう
p=noneのままでは、せっかくのなりすまし防止ポリシーが機能しませんので、quarantine もしくは reject を設定しましょう。
メール送信数が多い場合は、quarantine で様子を見て、問題無ければ reject にしましょう。
メール送信数が多くない場合は、すぐに reject にしてしまっても良いと思います。