タイトルのような心当たりはありませんか?この問題はユーザーの皆様からよく寄せられるご質問です。この記事では、WordPressでフォームからメールが送信されない、「サーバーエラー」の問題を解決する方法を説明します。
まず、WordPressサイトでテストを実行し、メールを送信できるかどうかを確認します。
これを行うには、サイトからパスワードリセットを要求するか、次のようなプラグインを使用します。
https://wordpress.org/plugins/check-email/ メールが正常に送信されない場合は、この先をお読みください。(そうでない場合は、サポートにお問い合わせください)。
なぜこのサーバーエラーが発生するのか?
Elementorは、WordPressのwp_mail機能を使ってメールを送信します。ウェブホストは送信されたメールを受け取り、処理して送信しますが、問題の90%はここで起こります。
ホスティングサーバーが、メール送信に使用するPHP機能を無効にしていることがあります。サーバーは基本的にメールをブロックします。
これは通常、サイトを介してスパムを送信しないようにするために行われます(ホストは、サーバーをスパムサーバーとして使用することを望んでいません)。
技術的に言えば 、wp_mail関数は、デフォルトでPHPのsend_mail関数を使用します。しかし、そのサーバーでこの機能が無効になっていると、メール送信に失敗します。これを回避するには、ホスティングサービスに連絡して有効にするように要求するか、代わりに SMTP サーバーを使用します。
そもそもSMTPとは何なのか?
SMTPとは “Simple Mail Transfer Protocol “の略です。SMTPは、フォーム内のメールをリストアップされたお客様の受信箱にルーティングするメールサーバーです。外部のメールサーバー(例:GmailはSMTPサーバーとして使用可能)であるため、メールをより早く届けることができ、ユーザーのスパムフォルダーにメールが入るのを防ぐことができます。
一般的なSMTPプラグイン
(https://wordpress.org/plugins/search/SMTP/ )を使ってみてください。
それでもうまくいかない場合…
サーバーエラーのトラブルシューティングについて
この問題を解決するには、ホストプロバイダーに連絡する以外に、以下の方法があります。
- フォームの差出人メールアドレスは通常、ウェブサイトと同じドメインからのものである必要があります。したがって、サイトがexample.comの場合は、[email protected]または[email protected]などの差出人電子メールアドレスを使用する必要があります。また、返信先フィールドを使用して、ユーザーのリクエストに返信する訪問者の電子メールアドレスを選択できます。
- Elementor Contact Form DB をインストールして、Elementorがメールを送信しているかどうかを確認します。これはサードパーティ製のプラグインですが、フォームの送信内容をデータベースに保存するためには十分に機能するはずです。プラグインをインストールして有効化した後、フォームを送信し、プラグインのダッシュボードで、フォームが送信内容をデータベース内に登録したかどうかを確認してください。
- 別のメールアドレスを使用する(迷惑メールとして登録されている可能性があります)。スパムと判定されないようにするには、メールの件名の長さ(短くまたは長く)を変えてみてください。
- サードパーティの統合機能を使用している場合は、それらを無効にしてみてください。例えば、MailChimpやActiveCampaignなどです。これで解決した場合は、統合ガイドを参照してください。基本的には、オートレスポンダーアカウントとフォームウィジェット内のフィールドマッピングを確認する必要があります。フォームウィジェットの中で、必須フィールドが「なし」に設定されていないことを確認してください。また、MailChimpアカウントのフィールドマッピング設定で、「住所フィールド」や 「誕生日フィールド」を追加していないことも確認してください。
- フォームを送信した後にページが更新される場合、一般的にはプラグインやテーマのコードが競合していることが原因です。この場合、Elementor と Elementorプロ以外のプラグインをすべて無効にして、メールが正しく送信されるかどうかを確認してください。うまくいかない場合は、WordPressのデフォルトテーマに切り替えて、問題が解決するかどうかを確認してください。
- フォームフィールドのID(フィールドの[詳細設定]タブ)が入力されていることを確認してください。有効なフィールドIDがないと、”[all-fields]”ショートコードを使用した場合、投稿の受信者に送信されるメールメッセージにフォームフィールドの値が表示されません。
- メールのメッセージボックス内の各フィールドに、「詳細設定」タブに表示されている正しいショートコードが使用されていることを確認してください。
それでも問題が解決しない場合
- システム情報を送ってください。WPダッシュボードのElementor > System Infoで確認できます。
- ウェブサーバーとPHPのエラーログも送ってください。ホスティングパネルで確認するか、ホスティング会社に頼んで提供してもらってください。