コンタクトフォーム7で送信エラーになった時に確認すべきポイント6選

こんにちは、たーたんです!

最近そういえば問い合わせを頂く事が減ったな・・でもアクセス数は増えているし・・と思って、もしや?と思いお問い合わせフォームからメッセージを送ってみると、そもそもメッセージが送れない状態になっていたので色々調べて、解決しました。

同じように調べている方の参考になればと思い、調べた内容についてまとめますね!

スポンサードリンク

起きていた現象

私がハマっていたのは、上記画像のように、投稿時にオレンジ色の枠でエラー表示される画面です。

この枠の色がミソで、これはスパムとして扱われている事を示しているようです。

テスト時に使っていたメッセージがまずいのかな〜?と思ったり、使ったメールアドレスがまずかったかな?と思ったり、色々あれこれ試していましたが変わらず。

最初はakismetの設定をしている状態だったので、それも解除して見たけれどもそれでも変わらず。などなど。

試行錯誤し確認しつつ、Web上で調べた内容も含め、以下でまとめます。

エラー時に確認すべき内容

WordPressからメールは送れるか

まずはここでしょうか。ワードプレスからのメールが、適切に届くかどうか。

ブログを単に書きたいだけなのに、やれサーバの設定やら何やら専門用語(SMTPって何だ、ってなりますよね〜)が出てきて難しい所ですけど、どうもこの作業を簡単にはできないようなので、確認しておかないといけないようですね。

私は登録していたメールアドレスがGmailのものだったのが悪かったのか、いつからか届いていませんでした。

しかし、届いていないよ〜、というメッセージも残っていないのがちょっと残念ですね・・

安全なのは、登録しているドメイン(例えばこのサイトの場合、tahtan01.comです)のメールアドレス(wordpressからのメールの場合、ユーザ名はwordpressが使用される事が多いですね)を取っておいて、そのメールアドレスを登録しておく事です。

そしてその後、SMTP Mailer等のプラグインを使って、テストメールを発射して、実際に届く事を確認しましょう。

テストで送ったメールが届いているにも関わらず、相変わらず問い合わせフォームで入力するとエラーになる場合は、wordpress〜登録したメールアドレス間は接続が確立しているけれども、別の要因で届いていない、と切り分けられます。

REST APIアクセスが無効になっている事が関係していないか

ググって出てくる内容はこちらが多いので、ここでハマっておられる方も多かったのでしょう。

問い合わせフォームから「送信」ボタンを押すと、送信中を示す回転矢印マークが、クルクルと回っている状態で止まってしまう場合は、この設定が悪い場合が多いようです。

ちなみに私はこの設定変更では変わりませんでした。まぁ、出ているエラー内容も違いますしね・・

とはいえ道すがら確認しましたので、REST APIの設定確認について、私が使っているwp-xサーバーの場合について紹介しますね。

まずは管理画面から、「サーバー管理」→「WordPress管理」→「WordPress設定」→自分のドメイン(このサイトの場合はtahtan01.com)と辿ります。

ドメイン名をクリックすると出てくるWordPress設定の中から、「セキュリティ設定」→「REST APIアクセス制限設定」があります。

これがREST APIのアクセス設定です。

ややこしいですが、デフォルトは制限がONなので、アクセス制限されている状態です。

そして「国外IPアドレスによる・・」とありますので、国内IPアドレスからのREST APIアクセスは制限対象外(アクセス可能)です。

ただ、ググって情報を見ている感じだけで正確ではありませんが、そもそも引っかかっていたのが特定のバージョンのようなので、昔のバージョンでかつ、制限を緩めた状態で放置しておくのは、個人的にはあんまりオススメしないかな・・という感じです。

プラグイン・Wordpressそのものを(適切に)アップデートしているか

特定のバージョンのWordPressとプラグインの組み合わせでずっと使い続けるスタイルの方は、試してみる価値があると思います。

ただ、私の場合はこちらもやってみましたが、元々バージョンは細かく上げるタイプで4.9シリーズの中でも最新に変えていたこともあり、特に変わりませんでした。

GutenbergエディタになってしまうWordPress5.0は直前まで避けていて、とはいえこれが原因かな?と思い5.0にも上げてみましたが、とくに変わりませんでした。

ちなみにこの記事はGutenbergエディタで書いています。少しずつなれて来ると、これはこれでいいのかも・・とか思ったりもします。

コメントブラックリストに登録している用語を使っていないか

コメントブラックリスト?何それ?と思う人はこれは要因ではないと思います。

試しに問い合わせしてみようとした時に、使ってはいけないワードを使ってしまって弾かれていないか、という内容となります。

Contact Form 7のFAQでは、次のように書かれています。

以前はスパムフィルタリングを行う Akismet プラグインがこのオレンジボーダーの唯一の発生理由でしたが、現行のバージョンではそれ以外の理由でもこのオレンジボーダー付きのエラーメッセージが表示されるようになっています。
理由の一つにコメントブラックリストの使用があります。問題の見られるフォーム送信で使われている単語がコメントブラックリストにないか確認しましょう

https://contactform7.com/ja/faq/i-get-an-error-message-with-an-orange-border-even-though-i-dont-use-akismet/

コメントブラックリストって何?と思う方(私も同じでした)は、おそらく設定していないので違う理由だと思います。

コメントブラックリストへの行き方も、Contact Form 7のWebサイトに書いてありますね。

WordPress の管理画面にログインしたら、設定 > ディスカッションのメニューに移動、その中頃にコメントブラックリストという項目があります。

https://contactform7.com/ja/comment-blacklist/

場所は、ここです。

この「ディスカッション」のメニューの真ん中の方に、このようなエディットボックスがあります。

私の場合は上のように、しっかり空欄になっていて、違う理由なんだなと切り分けられました。

しばらく期間をあけてみる(キャッシュの無効化)

どうもContact Form 7では、最近はnonce認証を導入したようで、結果としてこの認証に失敗してしまった場合はスパムと判定するようです。

FAQにその旨、書いてありますね。

Contact Form 7 3.1 では nonce 検証がコンタクトフォームに導入されました。この検証に失敗した場合、Contact Form 7 は当該のフォーム送信をスパム行為と見なします。キャッシュを行うプラグインを同時に使用している場合に、これが誤検出を引き起こす可能性があります。

https://contactform7.com/ja/faq/i-get-an-error-message-with-an-orange-border-even-though-i-dont-use-akismet/

nonce認証については上記リンクから辿っていけば、英語ではありますが説明がありますね。

ややこしいんですけど、ブログ表示を高速化するようなプラグインを導入している場合、仕組み上内部的にキャッシュ(一度アクセスしたデータを取っておくメモリ/仕組み)を使っていると思うのですが、そのキャッシュ上に古い情報が残っていると、新しくアクセスした情報ではなくその古い情報を元に判定・認証するから、何度やってもエラーになりまっせ、という事ですね。

キャッシュを使いそうなプラグイン・・でいくと画像読み込みを遅延させるプラグインを使っていたので念のためそちらも無効化して試しましたが、私の場合は変わりませんでした。

上記でダメなら再インストール

あれもこれも変わりませんでした、なので、じゃあ何で解決したの?という所ですが、結局プラグインそのものを再インストールして直りました。

なので、真の理由はわかりません。

最新版にもしていたので、ただ入れ直しただけなんですけどね。

とはいえ、色々試してみてダメなら再インストールしてみるべき、と思いました。

スポンサードリンク

まとめ

コンタクトフォームからの問い合わせは、ちょくちょくあったので急に無くなったのは何でだろう?と気になって調べてわかりましたが、普段ブログを更新していると問い合わせフォームがまともに動いているかどうかなんて調べないので、ハマりポイントだなと思いました。

問い合わせフォームの設置はマナーとしてもやっておくべきだなと思いますが、それがまともに動いているかどうかを調べることなんてほとんどないと思います。

今回のこの問題がきっかけで、何らかのSNSアカウント(私の場合はTwitter)もブログ内で併記しておいて、何かしらの手段で連絡が取れるようにはしておかないと怖いな〜と思い、Twitterのタイムラインをブログに残すようにする、きっかけにもなりました。

参考になれば嬉しいです。

それではまた!

スポンサードリンク