Contact Form 7 を Akismet と連携

投稿日:2018年8月1日

さて、今回のブログカスタマイズは、問い合わせフォームを作成するプラグイン『Contact Form 7』に、スパム対策プラグイン『Akismet Anti-Spam』を連携させ、問い合わせフォームより送られてくるスパム問い合わせ(?)を防ごう!ってな作業です。
 

えー……、前回の記事で「次回はサイト表示速度の改善をします」とか言った気もしますが、ちゃんとこっちの作業も進めているんですよ?
ただめっちゃくちゃ難航しています(;´ェ`)

Google の 「PageSpeed Insights」での合格点を一つの目標として自分にできそうな事は片っ端からやっていっているんですが、まるで点数が良くならないんですよね……

やってもやっても結果がでなくてイライラしてるところに、追い討ちをかけるかのようになだれ込んできたのが、そう!今回対策しようとしているスパム問い合わせってな訳です。 ぜったいに許さないでござる。
 

スパム対策の種類

まずは問い合わせフォームから送られてくるスパム対策の方法を調べてみましょう。

ネットで調べてみるといくつか対策法が出てくるのですが、どうやらどれも Contact Form 7 が公式でサポートしてる機能をただ紹介してるってだけの記事っぽかったです。
 

で、その対策法ってのは、WordPressメニュー内[お問い合わせ]>[コンタクトフォーム]画面上部にガイダンスとして掲載されています。

以下、そのスクショ

コンタクトフォーム

上記青文字で書かれているのが公式でサポートされてるスパム対策法です。

青文字は Contact Form 7 公式サイトの該当ページへのリンクになっていますので、詳細はそこを見ればほぼ分かるようになっています。
※リンク先は英語表記となっていますが、ページ中程のサイドバーより日本語表記に切り替えられます。
 

公式でサポートされてる機能は3つ。(以下、公式サイトへのリンクとなっています)

まず③つ目の「コメントブラックリスト」なんですが、これは WordPress に標準で備わってる機能で、普段は記事ページ内コメントフォームより寄せられた投稿コメントに対してのスパム対策なのですが、どうやら Contact Form 7 へも適用させることができるようです。

しかしこの機能は、公式にも書いてある通り Akismet でもブロックしきれないスパムへの対策として適用させるものらしいです。
何より手動入力ですからね。 スパムなんて自動送信で機械的に送られてくる物が大半でしょうから、こっちも自動で対処しとくのが無難でしょう。 相手するだけ時間の無駄ですからね。
 

となると候補は①か②になるのですが、②の「reCAPTCHA」は設定が大変面倒くさそうです。
コレはあれです、「私はロボットではありません」のチェックが出るやつ。 多くのサイトで導入されているのでほとんどの人が見たことあるんじゃないでしょうか。

Google製の機能ということで信頼性は高いものの、登録画面が全部英語らしいんですよね……
 

というわけでとりあえず今回は①「Akismet」をスパム問い合わせ対策として設定しようと思います。
これでスパムが止められないようであれば、また改めて②reCAPTCHA→③コメントブラックリストと追加で設定していけばいいでしょう。
 

スパム判定テスト

ここからの作業は、基本的には公式の「Akismet によるスパムフィルタリング」の解説に則って設定していくだけですので、ぶっちゃけこっから先の私の記事を読むぐらいならさっさと公式ページを見に行った方が得策です。
 

とっとと終わしてサイト表示速度改善作業の続きに戻りたいところですが、まずは現時点での当サイトのコンタクトフォームがスパムを素通ししてしまっている事を確認しておきましょうか。

やり方は公式に書かれている通り、[お名前]の欄に“viagra-test-123”と入力して送信するだけ。
これは確実にスパム判定されるコマンドのようです。
 

結果はやはり普通に送れました。
が、何故か受け取り先に設定してあるメールボックスには届きませんでした。

どういうことでしょう? 受信側の Gmail が自動で受信拒否でもしたのでしょうか?
迷惑メールフォルダにも入ってないし……
 

Akismet と連携

ま、いいや。 ではいよいよ Akismet との連携をさせましょう。
ちなみに私はプラグイン『Akismet Anti-Spam』は既に利用していますので、Akismet への登録方法等は割愛させて頂きます。
 

この Akismet への連携法につきましても、公式の「Akismet によるスパムフィルタリング」を読みゃ分かります。 読んで。

[お名前]、[メールアドレス]、[サイトURL]の各項目のタグの末尾に、
akismet:author”、“akismet:author_email”、“akismet:author_url” を半角スペースを挟んで付け足すだけです。
どれか1つでも機能するみたいですが、正確なスパム判定のためには3つ全て設定した方が良いとのこと。
 

他の解説サイトもそうでしたが、公式サイトに書いてあるまんまなので特筆すべき点は特に無いですかね……

あ、コンタクトフォームは今使ってるやつをそのまま編集するよりかは、[編集]の隣にある[複製]ボタンから同じのを作って、それをリネームして使った方が良いと思います。

新しく作った(複製した)コンタクトフォームを問い合わせページに再設定する必要はありますが、後述しますが Akismet は万能という訳でも無さそうなので、場合によっては元に戻したいという人も出てくるかもしれませんので。
 

スパムブロックテスト

さてさて、これで当サイトへのスパム問い合わせは受け付けなくなったはず。

公式によりますと、送信時にオレンジの枠線で囲まれて送信失敗となるらしいです。

ではキチンと機能しているのか実際に試してみましょう。
 

やり方はさっきの【スパム判定テスト】でやったのと全く同じ。
[お名前]を “viagra-test-123” と入力して送信。 これで強制的にスパム判定。
 

結果がコチラ↓

コンタクトフォーム

おぉ…!送信失敗しました!! 成功です!(←ややこしい)
 

Akismet の管理画面を見てみると、ブロックしたスパム数が1増えてました。(反映されるまで少し時間差があるようです)
…のは良いんですが、ここでちょっと気になることが。

投稿コメントを Akismet がスパム判定してスパムフォルダーにぶっこんだ際には、それが誤判定だった場合はそこからサルベージ(拾い上げる)ができたんですが、コンタクトフォームからスパム判定された場合はスパムフォルダーには入らないみたいです。

なので、もし Akismet がお問い合わせを誤判定してスパムとして処理してしまった場合、その内容はどこにも保存されていないっぽいです。
まぁ、そもそもが送信失敗しているものなので、そこまで目を通す必要は無いとも思うんですが……

当サイトに初めて頂いたありがたいコメントが Akismet によってスパムフォルダーに入れられてしまっていたんですよね。
同じようにスパムでない問い合わせもスパム扱いされてしまったせいで、閲覧者が問い合わせできずに諦めてしまう、という事態も考えられるのではないかと。
 

つまり何が言いたいのかというと、Akismet は誤判定するものだという前提で、問い合わせフォームが機能しないことを想定して他の連絡手段もあわせて用意しておいた方が良いんじゃないかと私は思います。

当サイトの場合は、問い合わせフォームの受け取り先と同じメールアドレスも公開しています。

 

おわりに

必要最低限のスパム問い合わせ対策でしたが、今は他のブログカスタマイズ作業が大変忙しいので、今回は手早くこれだけで。
 

そうそう、肝心の当サイトに連日送られてきていた海外からのスパム問い合わせなんですが、今回の設定の後1日半が経ちましたが、全く送られてこなくなりました

でも「ブロックしたスパム」の数が自分がテスト用に送った分の数しか増えてないんですよね……
ブロックできたのかたまたまこのタイミングで送信してこなくなったのかは図りかねます。

 

んじゃ、今回の記事はここまで。

3400字か。 大した内容でも無いので1000字っくらいでまとめたかったけど、まー最近の1万字越えの記事よりかはマシか。
なにより1日で書き上げられたってのは大きい。 ほんっと久々。
ブログは肩肘張らずにパパーッて一気に書き切りたいですね。

1記事がこんぐらいの量だったら、かねてからの目標だった「(最低でも)月イチ更新」もまた再開していけるかな?

前回の記事が6月29日投稿だったので、今日が8月1日だから……アレ?Σ(゚ω゚)
いや!そんなはずは……
まだ、…7月だったはず……
そう…今日は7月32日……だから…

 セーフ!!

 

…えー、では次回の予定なんですが、

記事内でも何度か書いたように、サイトの表示速度の改善(高速化)の作業を引き続き行なっていきます。

やれることは大体やってみて、今は最後の施策として「キャッシュ」なる物をいじっています。

これがまーーーわっけわかんねぇ(´;д;`)

スマホでPC版サイトが表示されるよ……
PCでスマホ版サイトが表示されるよ……

-ウェブサイト作成

Copyright© ガンプラ気分 , 2020 All Rights Reserved.