Contact Form 7で外国語スパムを完全ブロック|日本語以外は弾くWordPress対策

目次

Contact Form 7に外国語スパムが届く原因

WordPressの人気プラグイン「Contact Form 7」は便利ですが、スパムメールが多いのも事実です。特に英語や中国語などの外国語スパムが頻繁に届きます。

外国語スパムが届く主な原因

  • 世界中のボットが無差別に送信している
  • reCAPTCHAだけでは防ぎきれない
  • 日本語サイトでも日本語以外が届く

Contact Form 7スパム対策の基本

  • Google reCAPTCHA(v3 / v2)の導入
  • Akismetでスパムフィルタリング
  • Honeypot for Contact Form 7の利用

これらの基本対策に加え、日本語以外を弾くコードを導入することで外国語スパムをほぼ完全に防げます。


functions.phpで日本語以外をブロックする方法

以下のコードをテーマの functions.php に追加してください。

// Contact Form 7 日本語以外を弾くスパム対策
add_filter('wpcf7_validate_text*', 'wpcf7_block_non_japanese', 20, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_block_non_japanese', 20, 2);

function wpcf7_block_non_japanese($result, $tag) {
    $value = isset($_POST[$tag->name]) ? trim($_POST[$tag->name]) : '';

    // 日本語(ひらがな・カタカナ・漢字)が含まれているか判定
    if (!preg_match('/[一-龠ぁ-んァ-ヶ]/u', $value)) {
        $result->invalidate($tag, "日本語で入力してください。");
    }
    return $result;
}

このコードを使うと、日本語を含まない送信は自動的に拒否されます。
英語・中国語など外国語スパムを効果的にブロックできます。


Contact Form 7フックでスパム対策を強化

このバリデーションは wpcf7_validate フィルターフックを使っています。
「お名前」「お問い合わせ内容」など必須フィールドに適用すると効果的です。

  • 日本語サイト → 日本語必須に設定
  • 多言語対応サイト → 英語などを許可する条件分岐を追加

プラグイン「Flamingo」でスパム隔離運用

完全ブロックに不安がある場合は「Flamingo」を導入するのも有効です。

  • 受信メールをデータベースに保存
  • 外国語スパムを自動判別して隔離
  • 誤判定があっても確認可能

Contact Form 7外国語スパム対策の注意点

  • 多言語サイトでは完全ブロックより隔離運用がおすすめ
  • functions.phpを編集する前に必ずバックアップを取る

まとめ

Contact Form 7に届く外国語スパムは、日本語を含まない送信を拒否するコードを追加すればほぼ完全に防げます。
基本対策(reCAPTCHA・Akismet・Honeypot)と組み合わせれば、外国語スパムから解放され、安心してフォームを運用できます。

Visited 1 times, 1 visit(s) today
こんな方にオススメ!
  • 即対応して欲しいが連絡が遅い!
  • そのまでの予算に余裕がない!
  • 制作会社に頼むほどでも無いが、一人で再現出来ない!
こんな方にオススメ!
  • 即対応して欲しいが連絡が遅い!
  • そのまでの予算に余裕がない!
  • 制作会社に頼むほどでも無いが、一人で再現出来ない!
よかったらシェアしてね!
  • URLをコピーしました!
目次