送信メールが迷惑メール扱いされないための設定 ~DMARC認証編~

はじめに

DMARC認証について調べてみて、私が把握した内容は以下の通りです。

  • SPFやDKIMを用いて送信ドメインを認証する場合は、認証に失敗したメールをどのように取り扱うかは受信者が決める。送信者側は認証に失敗したことやそのメールがどのように処理されたかを把握することができない。そういったSPFおよびDKIMの挙動を補強するためにDMARCが提唱された。
  • DMARCでは、認証失敗時にどのようにメールを処理すれば良いかを送信者が受信者に対して表明することができる。受信者は認証に失敗した場合に送信者のポリシーを参照し、それに基いてメールをどのように処理するかどうかを決める。さらに受信者から送信者に対して認証に失敗した旨を通知することができ、送信者は受信者から送られてきたレポートの内容を調べることで自身のメールシステムが正しく運用されているかどうかの判断や迷惑メール対策などに役立てることができる。
  • DMARCはSPF/DKIMと組み合わせることを前提としており、SPFとDKIMのどちらか一方、あるいは両方で認証に成功した場合にDMARC認証に進む
  • SPF単体での認証時は envelope-fromに基づいて認証を行ったが、DMARC認証と組み合わせるSPF認証においてはFrom:ヘッダに基づき行う
  • SPFあるいはDKIMで正しいとされた送信元ドメインと送信者アドレスのドメインとが比較され、一致すればDMARC認証に成功する。SPFとDKIMの両方で認証に成功してもDMARC認証に失敗すれば認証失敗となり、DMARCポリシーに基づいて処理される。SPFとDKIMの両方で認証に失敗した場合はDMARCポリシーに従って処理される。

SPFについては from:ヘッダに基づく認証に成功するように前々回の投稿で設定済みです。
DKIMについては前回の投稿で設定済みです。

今回は締めくくりのDMARC認証対策を行います。

SPFレコードの確認

私の場合は「お名前.com」のサイトで次のように設定しました。

ホスト名   :(空欄)
TYPE        :TXT
VALUE     :v=spf1 mx ~all

DMARCレコードの登録

DMARC認証に対応するためのPostfixへの追加設定は特にありません。
「お名前.com」のDNSサーバーに以下のようにTXTレコードを登録するだけです。

ホスト名:_dmarc(.example.com)
TYPE     :TXT
VALUE   :v=DMARC1; p=none; rua=mailto:xxx@example.com; ruf=mailto:xxx@example.com

VALUE値の
「p=」は認証失敗時に受信側に実行して欲しいアクション
「rua=」は集計レポートの送付先
「ruf=」は認証失敗レポートの送付先
です。

動作確認

試しに Gmail 宛てにメールを送信してみます。
メールヘッダーを確認してみると「DMARC=pass」と表示されており、DMARC認証に成功したことが分かります。

あとがき

これで SPF認証/DKIM認証/DMARC認証の設定が揃いました。

今までは家族には「携帯やGmailに送信するときは届かないこともあるから、届いたかどうかちゃんと確認するように」とか「PCメールアドレスは受信専用で使ってね」などと伝えていましたが、「使いにくい、だったらもう使わない、携帯アドレスだけで全部やる」といった雰囲気になってました。

安心してメール送信できる環境が整い、めでたしめでたしです。

コメント

タイトルとURLをコピーしました