WordPressのお問い合わせフォームとしてインストールしていたContact Form 7でメールが送れないと相談を受けたので調べたメモ。
症状
メールを送信しようと送信ボタンをクリックしたところ、くるくると送信中の矢印が延々と回り続けて送信が完了しない、という状況。
また、送信ボタンを押す前はchromeのデベロッパーツールには何のエラーも表示されないのに、
クリックをすると下記のようなエラーが表示されました。
Contact Form 7のバージョンが5.3の場合
POST https://example.com/wp-json/contact-form-7/v1/contact-forms/125/feedback 500 (Internal Server Error)Contact Form 7のバージョンが5.2.2の場合(バージョンをダウングレードしてチェックしてみました)
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
補足:調べていると403エラーもある
メールが送信できない場合のエラーは他にもいろいろあって、403エラーの時もあるみたい。
もし403の場合は「Rest API」の設定が無効になっているかもしれないので、一度そちらをチェックしたほうがよさそう。
参考:【エックスサーバー】ContactForm7でメール送信ができない場合の対処法
今回は500エラーなので別の解決方法を探していく
Contact form 7: 500 (Internal Server Error)
こちらに開発者さんのアンサーがあったので、日本語ページの方をリンクしておく。
フォームの送信後、回転する矢印のアイコンは現れるのですが、それっきりで何も起きません。
どうして全プラグインを無効化してデフォルトテーマに切り替えるよう勧められるのか
プラグインやテーマが干渉してエラーを起こしているのではないかということです。
プラグインとテーマをチェックする
ということで、プラグインを無効化してはフォームをチェックする、という流れを一つずつ行いました。
プラグインは問題なかったので、今度は使用しているテーマを一度別のテーマしてみたところフォームのエラーが改善された!
今回の原因はテーマだった
テーマがいけないということだったので、あとはテーマの中で修正したところを順にチェックし、functions.phpに原因のコードがあるのを発見したので削除したところ解決しました。
他にもお問い合わせフォームを設定する際の「送信先」や「送信元」の記述が良くないせいで送れなかった、という場合の記事もありましたので、ひとつずつ確認していくのが良さそうです。