こんにちは、ちゃりおです。
1年に1回くらいSPFで悩んでいる気がします。
SPFのinclude制限10回を超えてしまったので、その際にどういった対応をとったか書きます。
SPFとinlucde数の制限について
まずは、SPFについてです。
SPFレコードにメール送信するIPを書いて、受信側で検証してなりすましを防ぐ技術です。
SPFは、こうしたメールアドレスにおけるなりすましを防ぐための技術の一つで、 DNSを利用するのが特徴です。 ドメインをSPFに対応させるには、 そのドメインのゾーンデータにSPFレコード(*2)という情報を追加します。 SPFレコードには、 そのドメイン名を送信元としてメールを送ってもよいサーバのIPアドレス等を記述します。
includeの制限があり、10回を超えると正常なSPFレコードとして認識されません。
includeの回数は再帰的にカウントされます。
たとえは、hoge.comのSPFレコードが以下だとします。
v=spf1 include: fuga.com ~all
includeの回数は、このレコード内には1回です。
しかし、fuga.comのSPFレコードが以下だった場合、こちらのincludeもカウントされます。
hoge.comのincludeの回数は2回になります。
v=spf1 include:_spf.fuga.com ~all
SPFの回数を調べるには、以下のツールがおすすめです。
include数の上限を超えた できることは?
超えた際にできることです。
超えてしまっても、DNSの設定はできますが不正なSPFレコードになるので
メールがスパム判定される可能性があります。
不要なincludeを削除する
まずは、不要なincludeを調べることです。
メール配信のサービスを導入した際に、SPFを設定すると思います。
サービスを使用しなくなったときに、SPFを消し忘れがあるかもしれません。
(普段自分が使っていないサービスでも、別部署が使っていたり)
ドメインで検索すると、サービス名とか出てくるので社内で使用状況を聞いてました。
サブドメインを分ける
不要なincludeがない場合、サブドメインを分けます。
hoge.comでSPFレコードがあったら、fuga.hoge.comにするなど。
この際のメール送信元は、fuga.hoge.comになります。
fuga.hoge.comを使うサービスで、hoge.comでメール送信してもSPFは有効になっていないので注意が必要です。
まとめ
inlucde数の制限を超えた際は以下必要です。
- 不要なincludeを削除する
- サブドメインを分ける
10個もメール配信系サービス使わないだろうし、制限をこえることはないだろうと思っていました。
超えてしまったので、サブドメインを分けて対応しました。
似たようとのサービスもあったので、サービスの整理が必要そうです。