事例紹介(復旧・実戦系)

Contact Form 7 海外からのスパム対策

Contact Form 7 海外からのスパム対策
WEBさん
WEBさん

お問い合わせフォームへの英語スパム、reCAPTCHA や画像認証より「日本語以外を弾く」方が早くて UX も落とさないことが多いんですよ。今日はその一手を紹介します。

※ 本記事は2023年当時の事例です。 現在の WordPress 6.x / PHP 8.x 環境では推奨手順が変わっている可能性があります。最新の対応方針は 復旧サービス または ご相談窓口 から確認ください。
ココナラでよくいただくご相談の一つに、スパムメール (いわゆる迷惑メール) があります。

「お問い合わせフォームからの英語スパムメール」

海外から、ちょくちょく送られてきませんか❓

ブロック方法はいろいろあります。

たとえば、問い合わせフォーム送信時の画像認証です。

ただし画像認証はユーザビリティが低下するため、できれば避けたい施策です。

もっとシンプルな方法を探していたところ、「日本語メールだけを受信し、それ以外をブロックする方法」が見つかりました❗️😊

今回は「お問い合わせフォームから送信される英語メールだけを、ピンポイントでシャットアウトする方法」を紹介します。

Contact Form 7 お問い合わせフォーム「海外スパム対策」

さっそくですが、以下のコードをコピーし、テーマの functions.php に貼り付けてください。
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;
}
//メールフォームの textarea にひらがなが無ければ送信できない(contact form7)
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
PHP
これだけで、お問い合わせ本文 (textarea) が全文日本語以外の場合はエラーになり、送信できなくなります。

お問い合わせ本文には <textarea></textarea> タグが使われています。

その textarea タグの内容に「ひらがな」がなければ、エラーを返して送信不可にする。それがこの PHP コードの動きです。

判定基準は「ひらがなの有無」。

したがって、全文外国語の海外スパムは、どう頑張っても送信できません。

設定後は忘れずに動作チェック❗️

functions.php に海外スパム対策を入れたあとは、お問い合わせフォームから送信して動作確認してください。作りっぱなしは NG です❗️

CF7動作テスト

当サイトのお問い合わせでも、この機能を導入しています。動作を確かめたい方は「こちらのお問い合わせ」から、本文エリアに英文を入れて試してみてください。

送信ボタンの上に、自分で追記したエラーメッセージが表示されれば OK です。

上図では「ひらがな」が入力されたテキストエリアは正常、「abcd」が入力されたテキストエリアではエラーが出ています。

その下のオレンジ枠は『Contact Form 7』の自動エラーメッセージです。

英語以外でも、ひらがなを含まなければエラーの対象になります。

この迷惑営業対策もあわせて設定すれば鉄壁❗️

WordPress の標準機能をうまく使えば「Contact Form 7 に特定キーワードが含まれていたら送信ボタンで警告を出し、送信させない」処理も可能です。

まとめ

今回は「Contact Form 7 のお問い合わせフォームから送信される英語メールだけを、ピンポイントでシャットアウトする方法」を紹介しました。

全文英語のスパムメールに悩んでいる方は、ぜひ試してみてください。

本記事の方法なら、画像認証でユーザビリティを下げなくても、英語スパムは完全シャットアウトできます❗️

「プログラミングは訳ワカメ」🫠 という方は WEB 先案内にご相談ください😊
WEBさん
WEBさん

reCAPTCHA・Honeypot・Akismet を入れても止まらない場合、サーバー側で弾いた方が早いことがあります。状況を共有いただければ最短ルートをご一緒に。

コメント (1 件)

  1. ご担当者様
    突然のご連絡失礼いたします。 Owned株式会社の古川と申します。
    貴社サイトを拝見したところ、発信されている情報が弊社が運用するサイト(https://owned.co.jp/)と親和性が高いと判断し、ご連絡を差し上げました。

    つきましては、2つの方法での連携をご提案させていただきます。

    ①相互リンクをさせていただく
    相互リンクでの連携をする方法です。

    ②発リンクをしていただく謝礼に、ホワイトペーパーを進呈させていただく
    発リンクをいただいた場合に、謝礼としてホワイトペーパーを進呈させていただきます。

    いずれかの方法をお選びいただけますと幸いです。

    ■ 相互リンクとSEO
    相互リンクとは、Webサイト同士がお互いのサイトにリンクを貼り合うことを指します。
    これは、ユーザーにとって有益な情報へのアクセス手段を増やすだけでなく、SEO(検索エンジン最適化)の観点からもメリットがあります。
    検索エンジンは、Webサイトの「被リンク」(他のサイトから自分のサイトへ貼られたリンク)を評価基準の一つとしています。
    関連性の高いサイトからの被リンクは、サイトの信頼性や権威性を高めると判断され、検索順位の向上に繋がることが期待できます。

    貴社サイトとの相互リンクを通じて、相互のサイトへの訪問者を増やすだけでなく、SEO効果による検索順位向上も見込めます。

    ■ 料金・提携等に関して
    今回の相互リンクのご提案は、「双方に費用が発生しない無料の範囲で行う」ことを前提としております。
    ぜひご検討くださいますようお願い申し上げます。

    ■弊社サイトから貴社サイトへのリンク掲載方法について
    いずれか1つのコラム(https://owned.co.jp/column/)内に、参考サイトとしてリンクを掲載させていただきます。
    掲載ご希望のコラムの選定や文言の微調整などは柔軟に承りますので、お気軽にお申し付けくださいませ。

    ■ 貴社サイトから弊社サイトへのリンク掲載方法について
    前項と同じく、参考サイトとしての掲載をお願いさせていただいております。
    相性の良いコラムなどがございましたらご紹介いただけますと幸いです。

    ■ホワイトペーパーの進呈について
    発リンクをしていただけるコラムをご返信ください。
    内容を確認の後、発リンクのご依頼をさせていただきます。
    貴社からの発リンクが完了次第ホワイトペーパーを進呈させていただきます。

    ご興味をお持ちいただけましたら、ぜひご返信くださいませ。
    なお、お電話での対応はいたしかねます。オンラインミーティングについては受け付けておりますので、不明点などありましたらメールにてお尋ねください。

    ご検討のほど、よろしくお願いいたします。
    _______________________________
    Owned株式会社
    東京都品川区大崎4丁目6-8
    ファミネスハイツ海老澤1階
    古川 宗城
    メール: ft-2@owned.co.jp
    電話:03-6303-9786
    HP:https://owned.co.jp/
    _______________________________

コメントを残す

メールアドレスは公開されません。* は必須項目です。

CAPTCHA