サーバーからGmail宛に送ったメールが、迷惑メールに直行してしまう事があります。
これはGmailに限ってではなく、プロバイダー宛のメールでも同じような事が起きることがあります。SPFの設定忘れが主な原因です。
SPFとは、送信ドメイン認証の事で、詳しくは、OCNの送信ドメイン認証(SPF)の対応を見ると分りやすいと思います。
SPFは、独自ドメインを管理するDNSにSPF情報を追加して、送信元ドメインと一致させるだけで、簡単に設定が出来ます。
SPFの設定例
バリュードメインとサーバーのSPF設定は下記の通りです。
メールアドレス(送信元)は、下記と仮定します。
hoge@example.com
バリュードメイン側のSPF設定例(※DNSレコード...)
a * 203.0.113.0 mx @ 10 txt @ v=spf1 +a +mx ~all
txt @ v=spf1 +a +mx ~all
が、SPFの設定。
サーバー側の設定
# vi /etc/mailname
を修正します。
example.com
この2つ作業だけでSPFの対応が可能です。
Gmailにテスト送信
サーバーからテストでGmailなどに送って、「メッセージのソース」を表示すると、ヘッダー情報の、Received-SPF:
を見ると認証の結果が分ります。
試しに、SSHで自分のGmail宛にメールを送ってみます。
$ echo "This is test mail." | mail アカウント名@gmail.com
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宛に届くと迷惑メールへ・・・。
SPFレコードの設定例(BIND編 / DNS側)
自前でDNSサーバーをお持ちの方は、下記の設定が参考になります。
// SPFレコードが一つの場合 example.com. IN TXT " v=spf1 +ip4:192.168.100.0/24 ~all" // SPFレコードが複数の場合 example.com. IN TXT "v=spf1 +ip4:192.168.100.0/24 +ip4:10.0.0.0/24 ~all"
サーバーからお客さん宛にメールを送る必要が場合は、SPFの設定は必須だと思ってください。