ワードプレスプラグイン コンタクトフォーム7の迷惑メール対策reCAPTCHAが使えなかった件
ワードプレスのお問合せフォームであるコンタクトフォームは便利です。 しかし便利ではあるものの、何も迷惑メール対策をしていないと以下のように猛烈な数のスパムも受信してしまいます。 上にあるとおり、メールの件名もメッセージ本文も英文で送信者も英語表記、外国から送られてくる機械が生成したメールがほとんどです。 ワードプレスとコンタクトフォームのバージョンはこんな感じで使用してました。- word press:5.1.1
- WPテーマ:afinger
- contact form7:5.1.3
- ユーザーにとって面倒ではない(気軽にお問合せできて取りこぼしが起こりにくい)
- スパムとまっとうなお問い合わせを的確に振り分ける機能
- サイト自体が重くならない
コンタクトフォーム7のreCAPTCHAでまず迷惑メール対策
コンタクトフォームのメニューに「インテグレーション」のタブがあり、この中で「コンタクトフォーム7のreCAPTCHA」を使用すればスパムは撃退できる」と説明されてます。 上の画像で言うインテグレーションの画面で青枠で囲った「google.com/recaptchaのリンク」をクリックしてみると、以下の画面が展開されます。 ワードプレスプラグイン コンタクトフォーム7の迷惑メール対策はグーグルが提供しているreCAPTCHAを利用するんですね。 このgoogle reCAPTCH右上のadmin consoleを押してみると以下の画面になり、 この画面で入力するのは以下の4つだけ。- ラベル:サイト管理のための適切な名前(自分が管理しやすい名前でOK)
- reCAPTCHAタイプ:reCAPTCHA V3またはV2※を選択
- ドメイン:https://www.example.jpの場合example.jpを入力すればOK
- オーナー:グーグルメールアドレス(アナリティクスを管理しているアカウント)
reCAPTCHAで迷惑メール対策したつもりが、長い間エラーに:えらいこっちゃ
私の場合は「このサイトのメルマガを購読したいけれど、エラーが出づづけて購読登録の送信ボタンも押せない」と御連絡を下さったユーザーさんからのメッセージでコンタクトフォーム7のreCAPTCHAにエラーが起こっているのを知りました。 ディバイスを変えて自分自身のウエブサイトのお問合せフォームから試してみると、いかにコンタクトフォーム7のreCAPTCHA V3が「お問合せをなくす逆効果な迷惑メール対策」だったのかがわかります。 エラーの内容は「メッセージを送信しようとするとエラーが起こりました。また後で試してください。」です。 早い話迷惑メールを撃退するためにグーグルのreCAPTCHA機能を利用したのに、迷惑メールでもないまっとうなお問い合わせも送れないような状態になっていたんです。 お問い合わせをしようとしてくださっていた閲覧者の方に本当に申し訳なかったなと思ったのですが、後の祭りになってしまいました。”原因はワードプレステーマとreCAPTCH V3 5.1.1の相性の問題”とは言い難い
reCAPTCHA V3 バージョン5.1.1については、さまざまなウエブサイトが問題を指摘してます。 その中でトラブルの原因として最多で挙げられている1つが「ワードプレステーマ自体と、reCAPTCHAバージョンの相性」です。 私がさまざまなサイトを拝見してトラブルが報告されているテーマで多かったのがcocoonとaffinger。※このサイトもaffingerで作成してます。 しかし…これはどうやらワードプレステーマとの相性云々ではなく、どちらかと言うとグーグルが提供しているreCAPTCHAバージョン5.1.1にかなりの問題があるようなんですよね。 以下はグーグルによるreCAPTCHA5.5.1の解説ですが、「爆弾」が仕掛けられているのが分かると思います。出典:google.com/recaptcha/intro/v3.html
「reCAPTCHA V3を利用しているサイトは、影響を被る可能性があります。送信ボタンを押すたびにオレンジの枠で囲まれたエラーメッセージ(メッセージを送信しようとするとエラーが起こりました。また後で試してください。)を見ることになるかもしれません。これはスパム判定した証拠です。(中略)これはテーマ開発における課題ですので、テーマ作成者に修正を求めてください」
これ「高頻度なエラーを自分たちで感知しておきながら、テーマ開発者に問題を丸投げしているだけ」の話です。 実に多くのウエブサイト運営者がreCAPTCHA v3による被弾を受けてます。グーグルがこんなマズイものをリリースするとは思っていなかった、というのが大方の意見ではないでしょうか。 いったい誰が「迷惑メールのための対策が、”すべてのお問い合わせを迷惑メールと判定するシロモノ”だった」などと想像するでしょうか? reCAPTCH V3 5.1.1がどれだけマズイエラーを抱え込んだまま世にリリースされた爆弾なのか考えるだけでも恐ろしいですよ。。 一応グーグルreCAPTCHA V3は2019年から二度のバグ修正が行われていますが、私はreCAPTCH5.1.3にしてもなおトラブルは回避できてません。 結局まっとうなお問合せであっても、全て迷惑メール判定されてお問合せがなかった期間を過ごしている当サイトとしては「グーグルの迷惑メール対策reCAPTCHA自体が迷惑行為」と判定するに至りました。 ★苦肉の策でコンタクトフォームの承認確認とチェックボックスを利用して迷惑メールを撃退
コンタクトフォーム7が推奨している迷惑メール対策google reCAPTCHAは、まっとうなお問い合わせも迷惑メール判定しているようなので、しばらく「迷惑メール対策なし」の状態にしていました。 すると英語表記のスパムがわんさか増えるんですよね。。 さすがに鬱陶しいなと思い、苦肉の策で採用した対策が「コンタクトフォームの承認確認とチェックボタン」の活用です。 コンタクトフォームには以下のようにタブが並んでまして、承認確認とチェックボックスをクリックすると 下の2つのようなタグが挿入されます。 [acceptance acceptance-0] 内容確認したらチェックを入れて送信してね※。 [checkbox checkbox-306 label_first]
- acceptance:このタグの横に以下チェックボックスに対する説明文を自由に入れます(※上は例文です)
- checkbox:□の中にチェックを入れさせるようにすると、ロボットによるスパムを撃退できます
私が採用しなかった迷惑メール対策
コンタクトフォームのダウングレード
reCAPTCHA5.1.1にトラブルが起こりやすいと報告されていますが、いくつかのサイトでは「5.0.0にダウングレード」して試しているケースもありました。 グーグルreCAPTCHAのサイトで古いバージョンをダウンロードできるので、誰もが実践しやすい次なる策といえそうですが、私はもうグーグルのreCAPTCHAを使うことに嫌気がさしてました。 長い時間まっとうなお問い合わせもスパム判定された苦い経験があり、どんなにバージョンアップされてバグの修正報告されようと、とても信用に足る迷惑メール対策とは言えないと思えたんです。日本語のみのお問い合わせを受け付ける・英文は受け付けない
function PHPに日本語のお問合せだけを受け付ける追記をする方法があります。 英文だけのメッセージは受け付けませんよ、という関数をfunction phpに仕掛けておくんですね。 以下はfunction phpへ実装する素晴らしいコード一例。出典:unguis.cre8or.jp/web/2279
function phpはワードプレスのテーマを正常に動かす超重要なファイルでもありますので、記述がおかしいとワードプレスが正常に動かなくなるなどがフツーに起こります。熊谷ヒカル
ワードプレスが真っ白になるとか、そんなエラーです。おーこわW