WordPressでお問い合わせフォームを作成を作成する際、"Contact Form 7"のプラグインがよく使われています。
お問い合わせフォームの設置自体は簡単にできますが、その後「メールが届かない...」となってる人もいます。
何をしてもうんともすんとも言わない"Contact Form 7"に怒りから悲しみに変わり、現在は意気消沈しているのではないでしょうか?
そんな私もなかなかGmail宛に送信されず奮闘し、もうダメだと諦めかけていました...
やってみたこと
・テーマとWordPressが最新バージョンか確認
(最新バージョンにしたら解決したという人あり)
・Contact Form 7を削除して再インストール
・固定ページで作っておいた"お問い合わせフォーム"をいったん削除して再度作成
・Gmailの「安全性の低いアプリがアカウントにアクセルするのを許可する」を有効
(危なそうですが、これでも解決したという人あり)
・レンタルサーバーのセキュリティ設定を色々いじり倒す
・「WP Mail SMTP by WPForms」というプラグインの導入...etc
できる術は全てやりつくしました。
入力ミスがないか目を皿のようにして見ました。
永遠に止まることを知らないクルクル...
サーバー側の設定をいじり倒した結果クルクルは止まりましたが、今度は"送信できない"という通知...
自力でプラグインなしで作ろうか本気で悩みましたが、ややこしそうだったので却下!
もし「WP Mail SMTP by WPForms」のプラグインを試していない人がいたら、一旦戻って設定してみてください。
ここでは「WP Mail SMTP by WPForms」の設定方法は割愛しますが、プラグインをまだ入れていない人も、インストールする理由はチラ見しておいた方がいいかもです。
"WP Mail SMTP"をインストールする理由
そこで考えた!
そもそも"WP Mail SMTP"を使用しなければならない理由は、サイトを運営しているサーバー(レンタルサーバー)とメールソフト(Gmailなど)のサーバーが違うからです。
私の場合、WordPressを運営しているのは「エックスサーバー」、メールを設定したいのは「Gmail」。
メールはSMTPという「メールを送信するための仕組み」を利用して、SMTPサーバー経由で送られます。
エックスサーバーやGmailのようなメールソフトなどは、それぞれ独自のSMTPサーバーをもっているので私たちはメールを送信できるわけです。
"WP Mail SMTP"をすでに設定した人はわかると思うのですが、これからする人は記入欄に「SMTP HOST」という箇所があります。
Gmailなら"smtp.gmail.com"です。
この"smtp.gmail.com"がGmail独自のSMTPサーバーであるという名前のようなものです。
ではWordPressはどうやってメールを送るのかというと、連携しているレンタルサーバーのSMTPサーバーを利用します。
ここで大切な点は、のちのちのヒラメキにつながるのですが...
(特殊な設定をしている人は除いて)
GmailならGmailのアドレス(〜gmail.com)を持っているからGmailのSMTPサーバーが働くということ。
WordPressもレンタルサーバーのSMTPを使うということは、レンタルサーバーで追加したアドレスだからSMTPサーバーが働くということ。
WordPressは自分が知っている名前のSMTPサーバーで送れるメールは送れるけれど、Gmailが割り込んできたら、「このGmailはどこのSMTPサーバーで送ればいいのだー」となるわけです。
正確性にかけますが、ザクッとした概念です。
なので、「メールの送信は違うメールソフト(Gmailなど)のSMTPサーバーを使うよー」と誘導しなければならないのです。
そこで登場するのがその誘導を簡単に促してくれる「WP Mail SMTP」というわけです。
WordPressがどのようにメールを送っているのかと、なぜ"WP Mail SMTP"が必要なのか理解していただけたでしょうか?
まぁ、私は設定したところでどうにもならなかったわけですが...
原因がわからず時間だけが無情に過ぎていく・・・とその時ひらめいた!タイトル通りの事を笑
レンタルサーバーでアドレス取得!
もうわかっている方もいると思いますが、原点に戻ったという事です。
『ていうか、レンタルサーバーのSMTPサーバーをそのまま利用しちゃえば"WP Mail SMTP"もいらなくない?
レンタルサーバーでアドレス追加しちゃえ〜!
それで、そのアドレスで受信したメールをレンタルサーバー側でGmailに転送してしまえばいい!』
と思ったのです。
アドレスが増えるのが嫌だと思うかもしれませんが、サイト用に作ると考えてしまえばどうでしょう?
・最後の望みをかけて早速エックスサーバーでメールアカウント追加
・エックスサーバー側でGmailに転送するように設定
(このままだとまだGmailでメール受信しかできないので)
・Gmailの方にもレンタルサーバーで作ったアドレスを追加
・Contact Form 7の「送信先」を独自ドメインのメールアドレスに変更
これを全てやっても30分かかるくらいです。
そして、結果...一発で成功!
結局なぜ無理だったのか原因はわかりませんが、結果よければ全てよしっ!
このやり方が正解か不正解か、はたまた当たり前のことなのかよくわかりませんが、WordPressがphpmailの仕組みを利用していることや、メールの送受信の仕組みを理解していない人には解読は激ムズなのである!と言いたい。
もしどうにもならんと嘆いている人がいれば、WordPressを稼働させているレンタルサーバーで独自ドメインのオリジナルアドレスを取得してみてはいかがでしょうか?
すでに取得しているならちょいと試してみてはいかがでしょう?
では良い結果を!
※各レンタルサーバーでの"メールアカウント追加"&"転送方法"、"Gmailへのアドレス追加方法"は、各レンタルサーバーのマニュアルに詳しく掲載されていると思うので割愛します。