今回はContact Form 7やMW WP Formでお問い合わせメールが届かない時の対処法を解説します。
普通メールはちゃんと届くのですが、サーバーの設定だったり環境によってはうまく届かない場合もあるみたいです。「お問い合わせは送信されました」と表示されるので送信自体は出来てるっぽいけどメールが届かないという感じです。
僕はMW WP Formでメールが届かない現象が起きましたが、Contact Form 7などのプラグインでも起こることがあるみたいです。というわけでこれを解決します。
メールが届かない原因
メールアドレスを作ったサーバーとWebサイトのサーバーが別の場合、メールを送信するサーバーを自分で指定する必要があります。
WordPressは自分のサーバーと同じサーバーのメールアドレスを利用しようとしますが、この2つが別々だとうまくメールを送れないわけです(例えばWebサーバーはさくらのレンタルサーバー、メールアドレスはGmailなど)。
この設定をできるようにするのが「WP Mail SMTP by WPForms」というプラグインです。
WP Mail SMTP by WPFormsを設定
WP Mail SMTP by WPFormsを使ってメールを送信するサーバーを設定していきます。
まずはWP Mail SMTP by WPFormsをインストールして有効化しましょう。
セットアップ画面が出ますが正直見やすくないので飛ばします。下の「ダッシュボードに戻る」をクリックしてください。
メールを送信するサーバーを設定していきます。
①送信元メールアドレス:メールの送信主のアドレスです。
このメールを強制使用:チェックを入れるとすべてのお問合せフォームでこのアドレスが強制的に使用されます。フォームごとに別のメールアドレスから送信したい場合はチェックを入れないようにします。
②フォーム名:メールの差出人の名前です。
この名前を強制使用:チェックを入れるとすべてのお問合せフォームでこの名前が強制的に使用されます。フォームごとに別の名前から送信したい場合はチェックを入れないようにします。
また、「送信元アドレスを返信先として設定」はチェックを入れておきましょう。エラーで送れなかった時にエラーメールを受け取れます。
③メールを送信するSMTPサーバーです。「その他のSMTP」を選択します。
ちなみにSMTPサーバー(Simple Mail Transfer Protocol)とはメールを送信するために使われるサーバーのことです。普段から行っているメールの送信はこのサーバーを通して行われています(ちなみに受信はPOPサーバーという別のサーバーが行っています。今回の話には関係ないので省略)
④SMTPホスト:メールサーバーのホスト名です。さくらのレンタルサーバーやロリポップなど、サーバーによって決まったある程度決まった形になっています(例えばさくらなら「○○.sakura.ne.jp」など)。サーバーのコントロールパネルにログインすると確認できます。「ホスト名」とか書いてあるやつです。
⑤暗号化:「TLS」を選択します。
「TLS」を選択すると⑥のSMTPポートが自動で「587」になるのでこれはこのままでokです。⑦の認証も自動でオンになるのでこれもこのままで大丈夫です。
⑧SMTPユーザー名:メールの送信元のアドレスです。前の画像の①と同じアドレスを入れればokです。
⑨SMTPパスワード:メールアドレスのパスワードを入力します。メールアドレスを作った際にパスワードを設定しているはずなのでそれを入れましょう。これもサーバーのコントロールパネルで確認できます。
終わったら「保存」をクリックします。
色々と解説しましたが、簡単に言うと「メールアドレス」「メールアドレスのパスワード」「ホスト名」の3つがわかっていれば設定ができちゃいます。
メールが正しく設定できているかチェックする
テストメールを送信してメールの設定が正しくできているかをチェックします。
上の方に「メールテスト」というタブがあるのでクリックします。
「送信先」の場所に設定画面で指定したメールアドレスが既に入力されているはずなので、このまま「メールを送信」をクリックします。
設定が正しく出来ていれば「成功しました」みたいな表示が出てこんな感じのテストメールが送信されてきます。
逆にメールが正しく送れていないときはエラーの表示が出るので設定を見直してみましょう。ホスト名とかメールアドレスパスワードとか特に間違えやすいかもです。
テストメール送信が成功したら実際にお問合せフォームからメールを送信してみてください。今度はちゃんとできているはずです。
まとめ
お問合せフォームでは「送信に成功しました」と表示されていてもメールが送られてこないときはWebサイトのサーバーとメールアドレスのサーバーが別であることが原因でした。
特に案件でテストサーバーで作業しているとこういうことが起こりがちですが、今回使ったプラグインで解決できます。
「ホスト名」とかはあまり聞き慣れないかもしれませんが、わかってしまえば設定は簡単です。メールが届かない場合は今回紹介した方法を試してみてください。