WordPress のお問い合わせフォームでよく使われるContact Form 7ですが、先日エラーメールの送信先が設定していないメールアドレスに届いているということがありました。
エラーメールの送信先のメールアドレスがないことでさらにメールアドレスがありませんよと言うエラーメールが送信され、サーバーに負荷がかかるという事態に。
調べた結果、Return pathを設定することで解決することができたのでその方法をご紹介させていただきます。
Contact Form 7でエラーメールが届いていない?
フォームからメールを送信して送信先のメールアドレスがないときにメールが届いていませんというエラーのメールが送信されます。
コンタクトフォーム7では送信元のメールアドレスも設定するのでそこにメールが届くのかと思っていたのですがどうもそこに届いていないということがありました。
調べたところ、エラーのメールが届くのはサーバーよってはWordPress の管理画面からは設定できないようでした。
私の場合では、info@●●●●.jpにエラーメールが届くようにしたかったのですが●●●●@●●●●.jpのアドレスになっていました。私が使用したサーバーがそうなっていただけでサーバーによっては普通に設定できるかもしれませんので、サーバーの運営元に確認しても良いかもしれません。
解決策:function.phpにReturn pathのメールアドレスをを設定する
解決方法としては function.phpに以下を追記します。
1 2 3 4 |
add_action('phpmailer_init', function($phpmailer){ $phpmailer->SMTPKeepAlive = true; $phpmailer->Sender = 'xxx@xxx.jp'; }); |
xxx@xxx.jpを任意のメールアドレスに変更して追加してください。
エラーを受信するためにメールヘッダーにReturn-Pathを設定すれば良いのですが、このReturn-Pathをメールヘッダーに付与する機能が Contact Form 7 には備わっていないようです。
なので、PHPMailer を直接操作するアクションフック phpmailer_init を利用してReturn-Pathを設定します。
基本的には上記のコードをコピペしてメールアドレスを変更して貼り付ければ問題ないはずです。結局サーバーのどこでReturn path が設定されているのかわからなかったですが、エラーメールの送信先はこれで解決しました。
まとめ
WordPressプラグインContact Form 7のエラーメールの送信先をReturn-Pathで設定する方法をご紹介しました。
まずはご紹介したソースを設定してみてください。
最後まで読んでいただきありがとうございました。
コメント