「Contact Form 7 で作成したお問い合わせフォームからメールが届かない」というご相談が増えており、とくに Gmail でまったく受信できないケースも出てきました。
そのほとんどは、設定の見直しやメール配信元の変更で解決できます。本記事では以下のケースに関する対処法を複数パターン解説しています。
- 自分(管理者)あてに問い合わせメールが届かない
- お客様あてに自動返信メールが届かない
サーバーや環境によって効果が変わってきますので、何パターンかテストしてみてください。
検証機能でエラーが表示されているときの修正方法は以下の記事で解説しています。
メールが届かない理由
メールが届かない理由は、大きく以下の 2 つです。
- Contact Form 7 の設定が間違っている
- そのサーバー(ドメイン)からのメールがブロックされてしまっている
Contact Form 7 の設定が間違っている場合は、少し修正するだけで解決します。
やっかいなのは 2 番目の理由で、お問い合わせフォーム経由だけではなく WordPress からのメールがすべて(自動更新通知など)届かなくなります。
とくに送信先が Gmail の場合は到達率がかなり下がり、完全にブロックされていることも少なくありません。
残念ながら「特定のメールを必ず受信する(させる)」手段はなく、「できるだけ到達率を上げる」方法で対応する形になります。
メール到達率を上げる方法
Contact Form 7 の基本的な使い方は以下の記事をご覧ください。
Contact Form 7 の使い方と CSS デザイン・カスタマイズ方法
以下、メール到達率を上げる方法を 5 パターン解説します。
01. Contact Form 7 の送信元アドレスを変更しない
フォーム編集画面の「メール」では、初期値の送信元が以下の形になっています。
[_site_title] <wordpress@example.com>
- _site_title:サイト名に置換される
- example.com:あなたのサイトのドメイン
- wordpress@example.com:WordPress が自動的に作成する架空のメールアドレス
この送信元アドレスを Gmail( @gmail.com
) など他のドメインにしてしまうと、メール到達率が下がります。
「住所が沖縄なのに、消印が北海道になっている」というイメージに近く、毎回住所と消印が異なるため怪しく思われてしまうわけです。
Contact Form 7 でも「設定エラー」と表示されるので、一度確認してみてください。長年使用しているとエラーに気づかない可能性があります。
初期値のままにしておくか、サイトの独自ドメインで作成したメールアドレスを設定しておきましょう。
02. 自動返信する場合はスパム対策を厳重にする
「メール (2)」を使うと自動返信できますが、よほどの理由がないかぎり使用はおすすめしません。
たとえ相手がスパマーでも自動返信するので、以下のリスクが生じます。
- スパマーに管理者のメールアドレスがバレてしまう
- スパムで大量の問い合わせがきたとき、そのすべてに返信する形になる
スパマーが何百回と問い合わせフォームからメールを送ってきたとき、そのすべてに自動返信すると「ランダムな迷惑メールを大量に送っているサイト」と認識されるかもしれません。
もし自動返信を使うのであれば、Akismet に加え reCAPTCHA も設定してスパム対策をきっちり行ってください。
スパムブロックプラグイン「Akismet」の設定方法と使い方
スパマーがメールを送れないようにしておけば、こちらから怪しいアドレスにメールを送ることもなくなります。
03. DKIM / SPF / DMARC を設定する
「DKIM」と「SPF」は送信メールの改ざんやなりすましを防ぐ技術で、サーバーに設定機能がある場合は必ず ON にしてください。
「DMARC」もこれから必須になってくると思います(メールマガジンを配信している場合は必須です)。
サーバーによっては設定の切り替えができないか、機能そのものがないことがあります。もし到達率を上げる必要があるなら、「DKIM」「SPF」「DMARC」が使えるサーバーに乗り換えたほうがよいでしょう。
ビジネス目的での運用なら、エックスサーバーをおすすめします。
WordPress ブログ初心者に「エックスサーバー」をおすすめする理由
04. 別サーバーから配信する
「このサーバーから送られてくるメールは怪しい」と一度でも判定されてしまうと、スパム対策・なりすまし防止対策をしても即効性は期待できません。
「怪しくない」と認識されるまでかなり時間がかかるので、メールを配信するサーバーを変えるほうが手っ取り早いと思います。
プラグイン「WP Mail SMTP 」を使い、現在の Web サーバーを利用したまま、メールだけ別のサーバーから送信するのが簡単です。
たとえば Google のサーバーからメールを送るようにしておけば、Contact Form 7 の送信元を Gmail にしても問題ありません(むしろ到達率が上がる可能性があります)。
WordPress で WP Mail SMTP を Gmail で設定する方法 | Hep Hep!
「WP Mail SMTP」を有効化しただけでは効果がないので、必ず最後まで設定してくださいね。
05. フォームを外部サービスに変更する
Contact Form 7 や WP Mail SMTP での設定が難しい場合、お問い合わせフォームを外部サービスで作成したほうがよいかもしれません。
Gmail をメインに使っているなら、Google Forms がおすすめです。
WordPress の固定ページに表示させる(埋め込む)手順を簡単に解説します。
「名前」や「メールアドレス」などの必要なパーツを配置し、右上の「送信」をクリック。
を選択し、出てきたコードをコピーします。
「カスタム HTML」ブロックにコードを貼り付け。
プレビューで確認して完了です。
Google Forms を利用すれば、お互い Gmail でもほぼ確実に届きますし、スパム対策も Google 側がやってくれるので安心です。
いったんフォームを置き換えておいて、その間に Contact Form 7 の設定見直しを行う、というのもよいですね。
固定ページに埋め込まず、一時的に外部サービスにリンクしておくのもよいと思います。
デザインとの兼ね合いもありますが、選択すべきは「きれいで届かないフォーム」ではなく「デザインに違和感があっても確実に届くフォーム」です。
メールが届いているか検証できるプラグイン
以下のプラグインを入れておくと、Contact Form 7 からのお問い合わせや WordPress からのメールが届いているか検証できます。
- Flamingo
- WP Mail Logging
Flamingo
「Flamingo」は、Contact Form 7 経由のメールのみ記録してくれるプラグイン。
WordPress の管理メールなどは記録されないので、本来は「お問い合わせを管理画面で確認したい」という目的で使うものです。担当者が複数人いるときは便利ですね。
手元に届くメールと照らし合わせ、Contact Form 7 からのメールが届いているかの検証にも使えます。
WP Mail Logging
「WP Mail Logging」は、WordPress からのメールをすべて記録してくれるプラグイン。
Contact Form 7 経由のお問い合わせも記録してくれるので、検証したいならこのプラグインを入れておけば十分です。
自動返信が正常に送られているかもチェックできます。
まとめ
送信元のメールアドレスを「ドメインと同じメールアドレス」にするか「Gmail など他のメールアドレス」にするかで対応が異なります。
配信元メールアドレス | 対策 |
---|---|
サイトのドメインと同じ | サーバーで DKIM / SPF / DMARC を設定する |
Gmail | 「WP Mail SMTP」で配信サーバーを変更するか、Google Forms に切り替える |
独自ドメインのメールアドレスを使いつつ配信サーバーだけ変える、という方法もありますが、基本的に従量制となっており配信数に応じたコストがかかります。
まずは本記事の対処法を試してみて、どうしても届かないようであれば検討してみてください。
レンタルサーバーを乗り換えるのも効果があるので、どの方法が最適か判断できないときは遠慮なくご相談いただければと思います。
WordPress の一般的なエラーや不具合への対応方法まとめ