お問い合わせメールが迷惑フォルダに入る問題

お問い合わせメールが迷惑フォルダに入る件について原因と対策を書きます。

迷惑フォルダに入ってしまう

ある日、問い合わせメールが迷惑フォルダに入っていることに気づいた。
メールヘッダーを調査したところ、SPFの結果がnoneになっていた。
本来、SPFはpassになるはず。これが原因の可能性が高いので調査することにした。
SPFは、Sender policy frameworkの略。

Return-path: <score915@www1678.sakura.ne.jp>

Authentication-Results: spf.xxx.com; spf=none (spf.xxx.com: score915@www1678.sakura.ne.jp does not designate permitted sender hosts) smtp.mailfrom=score915@www1678.sakura.ne.jp
Received-SPF: none (spf.xxx.com: score915@www1678.sakura.ne.jp does not designate permitted sender hosts) receiver=spf.xxx.com; client-ip=xxx.xxx.xxx.xxx;
helo=www1678.sakura.ne.jp;
envelope-from=score915@www1678.sakura.ne.jp
Received: from www1678.sakura.ne.jp (localhost [127.0.0.1])

原因、Return-Pathがサーバーのユーザー名になっている

メールヘッダーを確認すると、Return-Pathがwww1678.sakura.ne.jpとなっていることに気づいた。
期待値は score915@score915.com。

問い合わせフォームにはContact Form7というプラグインを利用している。
調査したところ、これは内部でmail()関数を使っているらしい。
mail()関数では、Return-Pathにはデフォルトでサーバーのユーザー名がセットされるらしい。

対策、WP Mail SMTPプラグインをインストールする

対策として、WP Mail SMTPプラグインを追加インストールしてみた。
設定として、From Emailに送信元に指定したいメールアドレスを記載し、Force From Email, Return Pathをオンにしてみた。

改善結果、メールが受信ボックスに入るようになった

プラグインの設定後、試しに問い合わせフォームで送信テストを実施した。
その結果、メールは受信ボックスに入ることを確認した。

メールヘッダーを確認したところ、SPFの結果がpassになっていることも確認できた。

Return-path: <score915@score915.com>

Authentication-Results: spf.xxx.com; spf=pass (spf.xxx.com: domain of score915@score915.com designates xxx.xxx.xxx.xxx as permitted sender) smtp.mailfrom=score915@score915.com
Received-SPF: pass (spf.xxx.com: domain of score915@score915.com designates xxx.xxx.xxx.xxx as permitted sender) receiver=spf.xxx.com; client-ip=xxx.xxx.xxx.xxx;
helo=www1678.sakura.ne.jp;
envelope-from=score915@xxx.com
Received: from www1678.sakura.ne.jp (localhost [127.0.0.1])

改善出来たと考える。