【完全対策】Contact Form 7に届く外国語スパムメールをシャットアウトする方法

WordPressの人気フォームプラグイン「Contact Form 7(CF7)」を使っていると、英語やロシア語、中国語などのスパムメールが届いて困った経験はありませんか?
特に日本語サイトでは、こうしたスパムが日々届き、大切なお問い合わせを見逃すリスクにもつながります。
この記事では、初心者の方でもできる「外国語スパムを完全に防ぐ方法」を、ステップ形式でわかりやすく解説します。
なぜ外国語スパムが届くのか?
- 海外のBot(自動送信プログラム)が無差別に送信している
- reCAPTCHAが未設定または古いバージョンを使用している
- フォームが日本語専用に設定されていない
これらが原因で、毎日大量のスパムが届くケースもあります。
ステップ1:日本語を含まない投稿をブロックする
フォームに日本語(ひらがな・カタカナ・漢字)が1文字もないと送れないように設定します。
[textarea* your-message pattern=".*[ぁ-んァ-ン一-龥].*"]
これにより、外国語のみで書かれたメッセージ(英語・ロシア語など)は送信できなくなります。
テーマファイルエディタから「テーマのための関数(functions.php)」の一番下にコピペ!
//textareaに「ひらがな」を含まなければ送信できないようにする。
function wpcf7_validation_textarea_hiragana($result, $tag)
{
$name = $tag['name'];
$value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
if ($value !== '' && !preg_match('/[ぁ-ん]/u', $value)) {
$result['valid'] = false;
$result['reason'] = array($name => '送信できません。');
}
return $result;
}
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
ステップ2:Google reCAPTCHA v3の導入
GoogleのBot対策ツール「reCAPTCHA v3」を使えば、フォームに入力した人が人間かスパムかを自動で判定してくれます。
設定手順:
- Google reCAPTCHAサイトでv3を選んでサイト登録
- サイトキーとシークレットキーを取得
- WordPress管理画面 → お問い合わせ → インテグレーション → reCAPTCHA にキーを入力
ユーザーの操作を邪魔せず、裏で自動的にスコア判定されます。
ステップ3:Akismetプラグインを活用
WordPress公式のスパム対策プラグイン「Akismet」は、フォーム内容もスパムフィルターにかけることが可能です。
設定方法:
- 「プラグイン」→「新規追加」→「Akismet」で検索し、インストール&有効化
- Akismet公式サイトでAPIキーを取得し、設定
- フォームに以下のようにタグを記述
[text* your-name akismet:author]
世界中のスパムと照合して、精度の高いフィルタリングができます。
ステップ4:海外からのフォーム送信を制限(上級者向け)
「IP Geo Block」などのプラグインを使用すれば、特定の国からのフォーム送信を制限できます。
ただし、海外ユーザーがサイトを利用する可能性がある場合は慎重に設定しましょう。
対策内容 | 効果 | 難易度 |
---|---|---|
日本語制限(正規表現) | ◎ 外国語スパム即ブロック | ★☆☆ |
reCAPTCHA v3 | ◎ Bot全体を自動検知 | ★★☆ |
Akismet | ◎ 高精度なスパム判定 | ★★☆ |
IP制限 | ◎ 国ごとのアクセス制御 | ★★★ |
Webフォームの悩みもUNLEASH TALENTが解決します
私たちは、フォーム最適化・スパム対策・Webセキュリティ強化までトータルにサポート可能です。
- Contact Form 7のカスタマイズ
- サイト高速化とSEO対策
- 問い合わせ導線の改善コンサルティング
お気軽に お問い合わせフォーム よりご相談ください。