[]

なぜかよく送信エラーになるContact Form 7

Contact Form 7、とても便利なお問い合わせフォーム用のプラグインなのですが、私はよく「送信できない」状況にあたるんですよね。日頃の行いのせいでしょうか??

今回もwpXサーバーに設置したコンタクトフォームが動かず、矢印がくるくると永遠に回り続ける状況になってしまいました。

時間を見るとすでに夜中の2時を過ぎていました。とりあえず10分だけ調べて解決しなかったら寝よう、と思い調べたところ、10分以内に解決できましたので、それを共有したいと思います。

状況の確認

この状況を確認する方法として、Firefoxでお問い合わせフォームを開いた状態で画面を右クリックし、Inspect Element (要素を調査) を選択します。そうすると、開発ツールが立ち上がってきますので、開発ツールから「コンソール」を選択します。Google Chromeの場合は「検証」ですね。そうするとDevToolsという画面が立ち上がり、同じ内容を確認することが出来ます。

コンソールを選択、表示した状態で、実際に問い合わせを送信してみると・・

画面上は矢印が回り続けている状態ですが、実際には、1秒以内にForbiddenで403が返ってきていることがわかります。これではいくら待っていても送信が行くわけがないですね。

ネットを調べてみたところ、以下のブログを見つけました。
Contact Form 7 でメールを送信できない原因と2つの解決方法

Contact Form 7 からメールが送信できない原因は、Rest API が無効になっている、というものでした。Rest APIと言われて、ピンとくる人はこのブログに来るようなことは少ないと思いますが、Rest APIはWebサービスの新しい方法です(すいませんザックリで)。2016年末にリリースされたWordPressのバージョン4.7から実装されたものの、これが原因で2017年に大規模なWordPressの改竄事件が起きてしまったという、訳ありのものです。

詳しく知りたい方は、
REST入門 基礎知識
0からREST APIについて調べてみた
REST APIとは? – API設計のポイント
このあたりを参照してみてください。

Rest APIは便利な反面、Webサイトの乗っ取りのような攻撃にも悪用されてしまうところがあり、WordPressにはあえてRest APIの使用を停止する機能を持ったプラグインもあります。

それだけでなく、サイト乗っ取りなどの危険性を考え、レンタルサーバー会社がRest APIの動作を禁止している場合があります。私が使っているwpXサーバーも、セキュリティのため、REST APIが標準で無効になっていました

REST APIを有効にする方法

wpXの管理画面にログインし、左のメニューから、該当のドメインを選択します。

私の場合は、secondlifeperth.com です。

表示されるメニューの中に、REST APIアクセス制限設定というのがありますので、
こちらをOFF にすれば、OKです。(この画像のようになっていればOK)

何かのお役に立てば幸いです。