おとなのらいふはっく

IT、iPhone、ビジネス、健康ネタなど、21世紀を生き抜く大人のためのライフハックブログ

WordPress:Contact Form 7で問い合わせスパムメールをブロックする方法を解説

WordPressで作ったサイトの問い合わせフォームに、海外から大量のスパムメールが送られてきて困っていました。

プラグイン「Contact Form 7」で作った問い合わせフォームなら、設定次第でスパムメールをブロックできます。

WordPress:問い合わせスパムメールが来なくなった!Contact Form 7の設定で対策を

こんにちは、よしぞう(@otonahack)です。

WordPressで作ったサイトを運営しています。

問い合わせフォームはプラグイン「Contact Form 7」で作っていますが、そのままの設定だとスパムメールが沢山届きます。

今回は「Contact Form 7」でスパムメールをブロックする方法を説明します。

「Contact Form 7」の詳細については公式サイトをどうぞ
↓↓↓
公式サイト
Contact Form 7

目次:Contact Form 7で問い合わせスパムメールをブロックする方法

結論:「クイズ」を使ったらスパムメールが来なくなった!

「Contact Form 7」が標準で装備している「クイズ」設定を使ったら、問い合わせメールのスパムがピタッと止まりました。

「クイズ」は文字通り、問い合わせフォームにクイズを記載して正解を入力しないと送信できない機能です。

Contact Form 7 公式サイト
クイズ

サイトには下図のように掲載しました。

問い合わせフォーム画面 クイズ部分
問い合わせフォームの「クイズ」部分

もちろん難しいクイズではなく誰もが分かるクイズを用意します。解答も問題と一緒に明記します。

「この答えを入力してね」と書いておけば、日本語の分かる人なら問い合わせを送信できます。

送られてくるスパムメールのほとんどは海外からの自動書き込みだと思うので、この方法は役に立つようです。

↑目次に戻る

「承諾確認」のチェックボックスだけではだめ

最初は、同じく「Contact Form 7」が装備している機能「承諾確認」を使っていたのですが、まったく防げませんでした。

問い合わせフォーム画面 承諾確認部分
問い合わせフォームの「承諾確認」部分

「承諾確認」は送信する前に確認ボタンにチェックを入れさせる機能です。

Contact Form 7 公式サイト
承諾確認チェックボックス

チェックを入れないと送信ボタンを押せないのですが、スパムの自動書き込みはチェックを入れられるほど進化しているんですね。。。

現在は、下の図のように、念のため「クイズ」と「承諾確認」の両方を使っています。

問い合わせフォーム画面
問い合わせフォーム画面に表示された「クイズ」と「承認確認」

↑目次に戻る

CAPTCHAは設定が面倒くさい

「Contact Form 7」の「CAPTCHA」画面
※画像出典:「Contact Form 7」公式サイトより

「Contact Form 7」はランダムでグニャグニャしたアルファベット画像を表示する「CAPTCHA」にも対応しています。

しかし、設定がやや面倒です。

なるべくなら「Contact Form 7」単体でサクッと設定できる方法が良いなと思い、「クイズ」を使う方法にたどり着きました。

「CAPTCHA」を利用したい方は、下記の「Contact Form 7」公式サイトを参考にどうぞ。

Contact Form 7 公式サイト
reCAPTCHA (v3)
Really Simple CAPTCHA

↑目次に戻る

「Contact Form 7」で「クイズ」を使う方法

「Contact Form 7」で「クイズ」を使う設定方法を解説します。

「Contact Form 7」のフォームを作成する画面で、テキストボックスの上に「クイズ」というボタンがあります。これをクリックします。

コンタクトフォーム7のクイズ設定
Contact Form 7の設定画面で「クイズ」をクリックする

「クイズ」をクリックするすると、小さい画面が開きクイズを記入できます。

「クイズと回答」というテキストボックスに、「クイズの問題|クイズの答え」という形で記入します。問題と答えの間に「|」(縦棒)を入れます。

コンタクトフォーム7のクイズ設定2
「クイズと回答」に問題と答えを入力する

設定が完了すると、下記のように「クイズ」のコードが入力されます。

クイズの設定画面
クイズの設定をすると入力画面zコードが入力される

すぐに設定したい人は下記の文章とコードを上記入力画面で直接入力してください。そのまま使えると思います。

下記のボックスに「カツオ」と入力してください(海外からのスパム対策です)。

[quiz quiz-132 "サザエさんの弟は?|カツオ"]

設定を保存すれば問い合わせフォーム画面に表示されます。

下記の図のように、問い合わせフォームでクイズの答えを間違うと「クイズの答えが正しくありません」と表示され、送信されません。

クイズの答えが違う場合の画像 送信できない
空欄にした場合やクイズの答えと違うと送信できなくなる

↑目次に戻る

念のため「承諾確認」のチェックボックスも一緒に使う

「承諾確認」の設定方法も説明します。スパム対策の効果は低いのですが念のため合わせ技で使用しても良いでしょう。

「クイズ」と同様にコンタクトフォームの設定画面に「承諾確認」というボタンがあるのでクリックします。

コンタクトフォーム7の承諾確認設定1
Contact Form 7の設定画面で「承諾確認」をクリック

設定画面が開くので、問い合わせフォーム画面に表示する文言を入力し、「チェックボックスを任意選択にする」のチェックを外します。外すことで必須項目になります。

コンタクトフォーム7の承諾確認設定2
「任意選択にする」のチェックを外し、必須項目に設定する

設定が完了すると、下記のように「承諾確認」のコードが入力されます。

承諾確認の設定画面
承諾確認の設定を入力した画面

すぐに設定したい人は下記のコードを上記入力画面で直接入力してください。そのまま使えると思います。

[acceptance acceptance-201] 記入内容をご確認の上、チェックボックスにチェックを入れて送信ボタンを押してください。 [/acceptance]

下記が「承諾確認」を設定したお問い合わせフォームです。

「承認確認」を否認した場合のカーソル
「承認確認」に同意しない場合は送信できない

送信者がチェックを入れずに送信しようとしても、マウスカーソルの横に「駐車禁止」のようなマークが現れて送信ボタンを押せなくなります。

チェックボックスにチェックを入れれば、送信ボタンを押せるようになります。

↑目次に戻る

まとめ

以上、「Contact Form 7」の問い合わせフォームから届くスパムメールの対策方法でした。

今のところ、この設定でスパムメールを完全に防げています。

スパムメールのAI能力が向上しない限り、しばらくは大丈夫だと思います。