自分のドメインから送信されたメールが迷惑メールに分類されないように頑張ってみる

今回のキーワードは「SPF」です。SPFとか聞くと、日焼け止めを思い浮かべるかもしれませんが、今回、紹介するのは”Sun Protection Factor”ではなく、“Sender Policy Framework”というものです。
送信元ドメインのなりすましを防ぐために策定されましたが、適切に設定されていない or そもそも設定する気がないケースが結構見られます。ここで、「やべっ、設定してないよ!」っていう、そこのサーバ管理者さん、あなたのサーバから送信されたメールが迷惑メールとして分類されている可能性が高いです。Webサービスでは、ユーザから「登録したんだけどメール来ないじゃん」と苦情の嵐が巻き起こる原因にもなりうるので、すぐに設定することをお勧めします。

※この記事はDNSサーバの設定ができる方を対象としています。むやみに設定を変更すると問題が発生することがありますのでご注意ください。

今回はいろいろなパターンの設定例を挙げた後でSPFについてもちょこっと触れていきます。
ここでは便宜的にメールサーバのIPアドレスをIPv4={IPv4 Addr}/IPv6={IPv6 Addr}、ホスト名=mail.example.jpとしますので環境に合わせて読み替えてください。


まずは設定例を

自分に合った設定をドメインのDNSレコードに追加してください。

Google Appsのみを使っている場合(2014/04/27追記)

example.jp. IN TXT "v=spf1 include:_spf.google.com ~all"

Google Appsを使っていて、ウェブサーバなどからもメールを送信する場合(2014/04/27追記)

example.jp. IN TXT "v=spf1 include:_spf.google.com a mx ~all"

(推奨)すべてのメールサーバがA/AAAA/MXレコードのどれかに存在する場合

example.jp. IN TXT "v=spf1 a mx ~all"

A/AAAA/MXレコードに設定されているIPから送信されたメールは認証を合格し、それ以外は認証を通過せず、迷惑メールとして扱われたり、拒否されたりします。
ほとんどの環境では、この方法が使えますが、ベストな方法はすべてのメールサーバをMXレコードに追加し、次のように記述することです。

(最も推奨)すべてのメールサーバがMXレコードに存在する場合

example.jp. IN TXT "v=spf1 mx ~all"

MXレコードに設定されているIPから送信されたメールは認証を合格し、それ以外は認証を通過せず、迷惑メールとして扱われたり、拒否されたりします。A/AAAAレコードに設定されているIPアドレスであってもMXレコードに設定されていない場合は認証を通過しません。
この方法が使える環境は正しくネットワークが構築された環境ですが、一部のネットワークでは利用できないことがあります。

(非推奨)1つ以上のメールサーバがA/AAAA/MXレコードのどれにもない場合

IPアドレスで指定する方法

example.jp. IN TXT "v=spf1 ip4:{IPv4 Addr} ip6:{IPv6 Addr} ~all"

ホスト名で指定する方法

example.jp. IN TXT "v=spf1 a:mail.example.jp ~all"

複数のメールサーバがある場合は以下のように、空白区切りで列挙していきます。

example.jp. IN TXT "v=spf1 ip4:{IPv4 Addr1} ip6:{IPv6 Addr1} ip4:{IPv4 Addr2} ip6:{IPv6 Addr2} a:mail.example.jp ~all"

指定したIPとホストに対応するIPからのメールのみ認証を通過します。

そもそもメールを送信しないドメインの場合

example.jp. IN TXT "v=spf1 ~all"

すべてのメールを認証しません。

(非推奨)SPFとか要らないorどうでもいいよという場合

example.jp. IN TXT "v=spf1 +all"

すべてのメールサーバからの送信を認証しますが、受信側の実装次第では受け付けられない可能性のある設定です。

設定が完了したらSendmail Inc.,の提供するツールを使って設定を確認しておきましょう。
このように表示されれば設定は完了です。


Sender Policy Frameworkについて技術的な話

SPFとはそもそも送信ドメイン認証の一種で、「発信者情報を偽装したメールを発見し、排除する技術」です。通常、迷惑メールの類はFromを偽装して送信しているため、SPFでは送信元の特定にエンベロープのメールアドレスのドメイン名を元にSMTPサーバのIPアドレスとDNS SPFレコードの情報を照合し、送信元SMTPサーバを認証します。そのため、SMTPサーバが認証されればドメインを偽装したかどうかが判定できるというわけです。
では、なぜSPF以外の送信ドメイン認証について書かなかったのか、という点についてですが、他の規格は導入時に複雑な設定変更や新たなソフトウェアの導入等が必要になるためです。
複雑なネットワーク構成に対応したい場合や他の規格を導入したい場合はご相談に乗りますのでContactから是非どうぞ!


参考情報

コメントを残す