以下、記載方法にて問題なく記載できる。
DNSサーバには、以下を参考に記載
前述の基本的なSPFレコードの書き方を把握していることを前提として、ここではその他の記述例をいくつか紹介します。
1) 単独のIPアドレスで指定する方法
1
|
example.jp. IN TXT "v=spf1 ip4:192.168.100.3 ~all" |
これは「正当なメールサーバー」のIPアドレスが1つ(例では「192.168.100.3」)しかない場合の記述例です。「ip4」とIPv4アドレスによる指定であることを示しています。
2) AレコードやMXレコードで指定する方法
1
2
|
example.jp. IN TXT "v=spf1 a:mail.example.jp ~all" example.jp. IN TXT "v=spf1 mx ~all" |
DNSに登録されたAレコードやMXレコードで指定した例です。
上は「mail.example.jp」のAレコードで、下は「example.jp」のMXレコードで指定されたメールサーバーが「正当なメールサーバー」であるという意味になります。
3)「~all」ではなく「-all」で指定する方法
1
2
|
example.jp. IN TXT "v=spf1 +ip4:192.168.100.0/24 -all" example.jp. IN TXT "v=spf1 include:kagoya.net -all" |
違いが分かり辛いかもしれませんが、前項で「~all(チルダオール)」と記述していた部分を、「-all(ハイフンオール)」に変えています。
それぞれの意味は以下の通りです。
・「~all」:送信元メールアドレスは詐称されている可能性がある
・「-all」:送信元メールアドレスは詐称されている
「~all」と比較すると「-all」は、より断定した指定方法というと分かりやすいでしょうか。
メールは様々なメールサーバーから配送される可能性があります。(メールマガジンのみ、外部のメールサーバーを利用するなど)そういった例外なく、必ずSPFレコードで指定されたメールサーバーからしか該当ドメインを送信元とするメールが送られないのであれば、「-all」を指定します。
一方、その他のメールサーバーからも送信される可能性があるなら、「~all」で指定しましょう。一般的には、「~all」が選ばれる例の方が多いです。
■ SPFが出来ているか確認を取る
Gmailに届いたメールのソースを確認してみると
認証成功(pass)
Received-SPF: pass (google.com: domain of hoge@example.com designates 203.0.113.0 as permitted sender) client-ip=203.0.113.0;
認証失敗(none)
Received-SPF: none (google.com: hoge@www does not designate permitted sender hosts) client-ip=203.0.113.0;
認証が失敗している原因は、@wwwとなっており、DNSで設定したドメイン(example.com)と異なっているので認証が失敗しました。原因は、/etc/mailname
の設定忘れです。
サーバーから送られてくるメールが、Received-SPF: pass
となっていれば、迷惑メールに行く確率が大分下がりますので、SPFの設定を忘れずにしてください。
Received-SPF: pass
– 送信ドメインの正当性が証明された。
Received-SPF: softfail
– 送信ドメインは詐称されている可能性があると判断されています。Gmail宛に届くと迷惑メールへ・・・。
参考:https://www.kagoya.jp/howto/it-glossary/mail/spf/
参考:確認方法 https://serverlog.jp/spf/