Cloudflare TurnstileとAI技術で自動営業スパムを遮断する方法|ボット対策からAI営業文の検知・排除まで


企業のホームページ(ウェブサイト)に設置されているお問い合わせフォームは、本来、自社の商品やサービスに関心を持った見込み客や取引先、求職者からの連絡を受け付けるための重要な窓口です。しかし現在、この大切な窓口に対して、プログラムによる自動送信や生成AIを悪用した無差別な営業メッセージが昼夜を問わず送りつけられる事態が深刻化しています。かつての問い合わせフォーム営業は、人間が手作業でホームページ(ウェブサイト)を開き、定型文をコピーアンドペーストして送信ボタンを押す手法が主流でした。

しかし近年では、Claude CodeやGPT Codexといった高度なAIコーディング技術の発展により、送り先リストの自動収集からフォーム構造の解析、文面の自動生成、そして機械的な送信処理までを一貫して行う自動営業ツールが次々と開発され、拡散されています。

Claude CodeやGPT Codexはスパム量産のためにあるのか?AI自動営業ツールの蔓延と構造的欠陥への警鐘

手作業であれば1日に数十社程度だった送信数が、自動化ツールによって1日あたり数千社という規模に膨れ上がり、受信側の企業では本来の顧客からの問い合わせが埋もれたり、毎日の確認と削除に膨大な業務時間を奪われたりする被害が相次いでいます。

しかも、迷惑メールやフォームスパムは1件あたりの金銭的損害が小さく、送信元も無数の事業者に分散しているため、事後的に法的な制裁を加えたり訴訟を起こしたりすることが実務上極めて困難です。だからこそ、相手がAIや自動化プログラムを用いて営業メールを送りつけてくるのであれば、受け手であるホームページ(ウェブサイト)の運営側もまた、最新のセキュリティツールとAIのコーディング技術を駆使して、入口の段階で機械的にブロックしていく姿勢が重要になります。

なお、迷惑メールや営業メールへの基本的な対策は お問い合わせフォームから届く迷惑メールや営業メールへの対策 で詳しく触れています。

今回は、現在最も有効なボット対策のひとつであるCloudflare Turnstileを用いた遮断の仕組みから、WordPressの各種メールフォームプラグインやPHP・CGIで構築された独自フォームに対して、Claude CodeやGPT Codex、GeminiなどのAIを活用して検知・排除ロジックを実装する具体的な手法、さらにはツールだけでは防ぎきれない「生成AI特有の営業文面」を見抜いて弾くフィルタリング設計までを詳しく解説します。

第一の防衛線:Cloudflare Turnstileの導入によるボット送信の入口遮断

Cloudflare Turnstile

Cloudflare Turnstile

問い合わせフォームへの自動営業やスパム送信を防ぐ上で、最初に着手すべき対策は、フォームのデータがサーバー内部のメール送信処理へと渡る手前の段階、すなわち入口でのボット遮断です。数あるボット対策ソリューションの中でも、現在ホームページ(ウェブサイト)の運用において極めて高い効果と優れた操作性を両立しているのが、Cloudflare社が提供しているCloudflare Turnstileです。

Cloudflare Turnstile

従来のreCAPTCHAが抱えていた課題とCloudflare Turnstileの優位性

長年にわたり、ホームページ(ウェブサイト)のフォーム保護にはGoogle reCAPTCHA(v2およびv3)が広く利用されてきました。しかし、Web制作やコンバージョン率最適化の現場において、reCAPTCHAにはいくつかの悩ましい課題が存在していました。たとえば、チェックボックスをクリックした後に「信号機のタイルをすべて選択してください」「横断歩道を選んでください」といった画像認証(CAPTCHA)が表示されるタイプでは、スマートフォンやパソコンから真剣に問い合わせをしようとしている本当の見込み客に対して強いストレスを与えてしまい、フォームの途中離脱を招く原因となっていました。

一方、画面上に認証を出さずに裏側でスコア判定を行うreCAPTCHA v3では、Googleの広範なトラッキングネットワークと連動する性質上、プライバシー保護の観点から導入をためらう企業があったほか、外部スクリプトの読み込みサイズが大きく、ページの表示速度やCore Web Web Vitalsの指標に悪影響を及ぼすケースも見られました。また、無料枠の上限変更などに伴い、継続的な運用コストや管理の手間を懸念する声も増えています。

これに対してCloudflare Turnstileは、訪問者にパズルや画像選択を一切強いることなく、裏側の非対話型チャレンジによって人間とボットを高精度に判別します。スクリプト自体も軽量でページの描画を妨げず、訪問者の個人情報を広告トラッキングの目的で収集しない設計となっているため、ユーザー体験とセキュリティ、そして表示速度のすべてを高い水準で満たすことができます。

ヘッドレスブラウザや自動送信プログラムを見抜く技術的な仕組み

近年の自動フォーム営業ツールは、単なるHTTPリクエストの送信(cURL等による直接POST)だけでなく、PlaywrightやPuppeteer、Seleniumといったブラウザ自動操作フレームワーク(ヘッドレスブラウザ)を用い、実際のブラウザと同じようにJavaScriptを実行しながらフォームへ文字を入力して送信ボタンを押す仕組みを採用しています。そのため、単純なJavaScriptの有無だけではボットを見分けることができません。

Cloudflare Turnstileは、フォームが設置されたページに訪問者がアクセスした際、ブラウザの実行環境に対して複数の微細な技術的検証(チャレンジ)をバックグラウンドで実行します。具体的には、通信時のTLSハンドシェイクにおける暗号スイートの組み合わせ(TLSフィンガープリント)や、HTTP/2およびHTTP/3の通信特性、ブラウザのWeb APIの挙動、CanvasやWebGLのレンダリング特性、さらには人間が画面を操作する際に自然発生するマウスカーソルの微細な揺らぎやスクロール、キー入力のタイミングなどを総合的に解析します。

自動営業ツールのプログラムがどれほど巧妙にブラウザを装っていても、OSのバックグラウンドで機械的に5,000社へ連続アクセスするような環境では、標準的なブラウザが持つ環境特性との間に必ず 미세な矛盾が生じます。Turnstileはその矛盾を瞬時に検知し、正当な人間のアクセスに対してのみ有効なワンタイムトークンを発行します。

クライアント側ウィジェットとサーバー側検証APIの正しい実装手順

Cloudflare Turnstileを導入する際、技術的に最も注意しなければならないのが、HTML画面側へのスクリプト設置だけで満足せず、必ずサーバー側のプログラムでトークンの検証処理を実装することです。

フロントエンド側へのスクリプトとトークン生成フィールドの配置

まずはCloudflareの管理画面から対象ドメインのTurnstileウィジェットを作成し、サイトキー(Site Key)とシークレットキー(Secret Key)を取得します。続いて、ホームページ(ウェブサイト)のお問い合わせフォームが存在するHTMLのheadタグ内、あるいは閉じbodyタグの直前にCloudflareの専用JavaScriptファイルを非同期(async/defer)で読み込ませ、formタグの内部にサイトキーを指定した要素を配置します。ブラウザ上で検証が完了すると、フォーム内に自動的に隠しフィールド(cf-turnstile-response)が生成され、そこに暗号化された検証トークンが格納されます。

サーバーサイド(Siteverify API)でのトークン検証の徹底

画面上にウィジェットを表示させただけでは、悪意ある自動送信プログラムがHTML上のウィジェットを無視して、フォームの送信先URL(action属性で指定されたPHPやCGIのエンドポイント)へ直接データをPOSTしてきた場合に防ぐことができません。

そのため、データを受け取るサーバー側のプログラムにおいて、メール送信処理を実行する直前に、受け取った「cf-turnstile-response」のトークン文字列と自社のシークレットキー、および送信元のIPアドレスをセットにして、Cloudflareの検証用エンドポイント(Siteverify API)へサーバー間通信で送信し、そのレスポンスが成功(success: true)であることを確認する処理を組み込みます。トークンが空であったり、有効期限が切れていたり、改ざんされていたりする場合には、その場で処理を中断してエラーを返すことで、ボットによる直接送信を確実に遮断することができます。

AIの攻撃にはAIの実装力で対抗する|コーディングAIを活用したメールフォームの独自カスタマイズ

Cloudflare Turnstileを導入するだけでも、機械的なボット送信の大部分は入り口で撃退することができます。しかし、世の中のメールフォームは多種多様であり、またスパム業者側もAIを使って送信プログラムの挙動を日々変化させています。

さらに、最初のリスト収集と文面作成だけをAIに行わせ、最後の送信ボタンのクリックだけを安価な労働力(人間)に代行させる「半自動型」のフォーム営業に対しては、ボット判定ツールだけでは通過を許してしまう場合があります。

そこで重要になるのが、相手がClaude CodeやGPT CodexなどのAIを使って営業ツールを作ってくるのであれば、防御する側も同じくClaude CodeやGPT Codex、あるいはGoogleのGeminiといった高度なAIのコーディング能力を最大限に活用し、自社のメールフォームの構造に合わせて検知と排除の条件を独自にカスタマイズしていくアプローチです。

メールフォームの種類に応じた柔軟な防御ロジックの構築

企業のホームページ(ウェブサイト)で使われているメールフォームのシステムは、サイトが制作された時期やサーバー環境によって大きく異なります。従来であれば、古いシステムや複雑なプラグインの仕様を読み解いて独自のスパム対策プログラムを追加するには、専門のプログラマーに多額の改修費用を支払うか、多くの時間をかけてコードを書く必要がありました。

しかし現在では、自社のフォームのソースコードやプラグインの構造をAIに読み込ませ、発生しているスパムの傾向を伝えるだけで、その環境に最適化された高精度なフィルタリングコードを数分で生成し、テストを経て安全に組み込むことが可能です。

WordPressのメールフォームプラグインにおけるフィルターフック活用

現在多くの企業サイトで採用されているWordPressでは、Contact Form 7やMW WP Form、Snow Monkey Formsなどのプラグインが広く使われています。これらのプラグインに対して独自のスパム排除条件を追加する場合、プラグイン本体のファイルを直接書き換えてしまうと、将来のアップデート時に改修内容が消えてしまいます。

より専門的には、WordPressの「mu-plugins(Must-Use Plugins)」ディレクトリや子テーマのfunctions.phpを活用し、各プラグインが標準で備えているバリデーション用のフィルターフック(たとえばContact Form 7であればwpcf7_validateやwpcf7_spamといったフック)に対して独自の検証関数を割り込ませる設計を採ります。

Claude CodeやGeminiなどのAIに対して、使用しているプラグイン名とフォームの項目名(name属性)、そして弾きたい条件を指示することで、アップデートに影響されない堅牢なカスタムフィルタリングのPHPコードを即座に実装することができます。

PHPで構築された独自メールフォームやフレームワークへの組み込み

スクラッチ(独自開発)のPHPで作られたメールフォームや、Laravel、CakePHPなどのフレームワーク上で動いている問い合わせ機能、あるいは市販・配布されているPHPメールフォームプログラムをカスタマイズして使っているホームページ(ウェブサイト)も数多く存在します。こうした独自PHPフォームの場合、実はプラグイン以上に自由度の高い防御ロジックを組むことができます。

POSTデータを受け取ってから確認画面を表示するまでの処理、あるいは確認画面から完了画面へ遷移してmb_send_mail関数やPHPMailer、SMTPライブラリが実行される直前の処理に対して、AIを用いて作成した検証用のクラスや関数を1ファイルとして読み込み(require_once)、条件に合致した不正な送信を入り口で破棄する仕組みを容易に追加できます。

Perlなどで書かれたレガシーなCGIメールフォームの改修と保護

10年以上前から運用されている老舗企業のホームページ(ウェブサイト)などでは、現在でもPerl言語などで記述されたCGIメールフォーム(sendmailを直接叩いて送信するスクリプトなど)が現役で稼働しているケースが少なくありません。こうした古いCGIフォームは、現代のセキュリティ基準から見ると無防備な状態のものが多く、自動営業ボットにとって格好の標的となっています。

社内や制作会社にPerlの古い構文や文字コード処理(Shift_JISやEUC-JP、Jcode.pmやEncodeモジュールの扱いなど)に精通した技術者がいなくなってしまった場合でも、AIのコーディング技術は非常に頼もしい力を発揮します。既存のCGIスクリプトをAIに解析させれば、既存の動作や文字コード環境を一切壊すことなく、最新のTurnstileのAPI検証(LWP::UserAgentやHTTP::Tinyを用いた通信)や、正規表現によるスパム文面ブロックのサブルーチンを正確に書き足すことができます。

ボットの機械的挙動を確実に捉える多層防御の実装テクニック

AIを活用してメールフォームをカスタマイズする際、単にひとつの対策に頼るのではなく、プログラムによる自動送信が共通して持つ「機械的な弱点」を突く複数の罠(多層防御)を仕掛けることで、ボットの突破率を限りなくゼロに近づけることができます。

CSSで隠したダミー項目(ハニーポット)による自動入力の検知

自動フォーム送信ツールは、ページのHTMLソースを解析し、formタグの中にあるinputタグやtextareaタグを見つけて機械的にテキストを流し込みます。この習性を逆手に取るのが「ハニーポット(蜜壺)」と呼ばれる手法です。フォームのHTML内に、たとえば「company_url_confirm」や「fax_number_ext」といった、いかにも本物の入力欄に見える名前をつけたinputタグを追加しておき、CSS(スタイルシート)を使って画面の外へ飛ばすか非表示にして、人間の目には一切見えないように設定します。

さらに、スクリーンリーダーを利用する方やTabキーで移動する方が誤って入力しないよう、tabindex属性をマイナスに設定し、autocomplete属性をoffにしておきます。人間が普通にブラウザから問い合わせを行う場合、画面に見えないこの項目には何も入力されないため、データは必ず空(空文字)の状態でサーバーへ送られます。しかし、HTMLソースだけを頼りに全項目を埋めようとする自動営業ボットは、この隠しフィールドにも律儀にテキストを入力して送信してしまいます。サーバー側のPHPやCGIで「この隠し項目に1文字でもデータが入っていれば、無条件でボットと判定して遮断する」というわずか数行の条件分岐を入れておくだけで、多くの自動送信ツールを無力化できます。

フォーム表示から送信までの経過時間(タイムスタンプ)検証

人間がお問い合わせフォームのページを開き、会社名や氏名、メールアドレスを入力し、相談内容の文章を考えて送信ボタンを押すまでには、どれほどタイピングが速い人やコピーアンドペーストを使う人であっても、最低でも10秒から15秒以上の時間がかかります。一方、1日に5,000社へ自動送信するようなプログラムは、1社あたりに時間をかけていられないため、ページを読み込んでからわずか0.5秒から3秒程度で全項目への流し込みと送信処理を完了させます。

そこで、フォームの画面を生成する際、現在のサーバー時刻(UNIXタイムスタンプ)を秘密鍵で暗号化(HMAC署名など)して隠しフィールドに出力しておきます。そして送信ボタンが押された際、サーバー側で現在時刻との差分を計算します。もしページを開いてから送信されるまでの時間が「5秒未満」であった場合は、人間による自然な操作ではないと判定してブロックします。この暗号化タイムスタンプの生成と検証ロジックも、AIに指示すれば十数行の簡潔なコードとして即座に実装可能です。

確認画面のワンタイムトークンとJavaScript動的キーの要求

さらに、フォームのページを開いた直後ではなく、利用者が実際にマウスを動かしたり、入力欄にフォーカスしてキーボードを叩いたりしたタイミングで初めて、JavaScriptによって動的に認証用のトークン文字列を計算し、フォームの隠し項目にセットする仕組みも有効です。単純なHTTP通信だけでPOSTリクエストを投げつけてくるボットや、画面操作イベントを発火させずにDOMの値だけを書き換える粗雑なスクリプトは、この動的キーを生成できないため、サーバー側のチェックで確実に弾くことができます。

実例から見る最新の自動営業メールのパターンとAI営業文の検知・排除ロジック

ここまで解説したCloudflare Turnstileや技術的なボット対策を導入することで、機械的なスパムの大部分は遮断できます。しかし、それでもなおすり抜けて届く営業メールが存在します。それは、ボット対策を回避するために人間が一部の操作を介在させていたり、高度なブラウザ自動化環境からゆっくりと送信してきたりするケースです。ところが、実際に届いた営業メールの文面やデータ構造を詳細に分析していくと、そこには「自動送信プログラム特有の入力ミス」や、「生成AIに書かせた営業文ならではの不自然な言い回し」という明確な共通パターンが浮かび上がってきます。

これらをサーバー側のプログラムで検知して弾く条件(コンテンツフィルタリング)をブラッシュアップしていくことで、防御の精度は飛躍的に高まります。

ボット送信丸出しの入力異常パターンと構造的バリデーション

自動フォーム送信ツールは、世の中の何万もの異なるホームページ(ウェブサイト)のフォームに対して、汎用のプログラムで無理やりデータを入力しようとします。そのため、フォームの項目設計が少し独自であったり、順序が異なっていたりすると、プログラムが入力欄を誤認して致命的な入力ミスを引き起こします。

会社名欄への長文誤爆とメッセージ本文の空白現象

実際に当社のフォームへ届いた自動営業メールの中には、ボットによる送信であることが一目でわかる極端な事例がありました。

そのメールでは、「お問い合わせ内容」の選択項目として「ホームページ制作・リニューアルお見積り」という、当社にとって最も重要な顧客向けのカテゴリを勝手に選択した上で、「会社名」の入力欄に対して「採用ご担当者様 突然のご連絡失礼いたします。株式会社〇〇の△△と申します…」から始まり、サービス案内、7問の4択診断の宣伝、計測用パラメータ付きのURL、そして自社の郵便番号・住所・電話番号・FAX番号に至るまでの営業メッセージ全文を丸ごと流し込んでいました。

そして、本来の「メッセージ本文」の欄は完全に空白のまま送信されていました。

なぜこのような奇妙な現象が起きるのかといえば、自動送信プログラムがフォーム内のテキスト入力欄を探す際、HTMLの構造を誤って解釈し、最初に見つかったテキスト入力欄(会社名欄)を本文の入力欄だと勘違いして全文をペーストし、そのまま強制送信しているためです。

フィールドごとの文字数制限と文字種・改行チェックの徹底

このようなボット特有の誤爆送信は、各入力項目に対するバリデーション(入力値検証)を厳格化することで100パーセント遮断できます。 具体的には、まず「会社名」や「お名前」の入力欄に対して、文字数の上限(たとえば会社名なら50文字以内、氏名なら30文字以内)をサーバー側で厳密に設定します。世の中に500文字もの長さを持つ会社名は存在しません。

さらに、会社名や氏名の欄に「改行コード」や「http://」「https://」といったURL文字列、あるいは「突然のご連絡」「失礼いたします」といった挨拶文が含まれていた場合は、その時点で異常な入力とみなしてエラーにします。 同時に、「メッセージ本文」の欄が空白、あるいは10文字未満のような極端に短い状態での送信を禁止し、会社名欄と本文欄の双方に同じ文字列が含まれている場合もブロックするよう条件を設定します。これだけで、構造解析に失敗した粗雑なボットからの通知メールが管理者の受信トレイを汚すことはなくなります。

表面的なスクレイピングとAI特有の「過剰な称賛構文」を見抜く

次に問題となるのが、入力欄自体は正しく埋まっているものの、文章そのものが生成AIによって自動生成された営業メールです。最近のAI営業ツールは、送信先企業のホームページ(ウェブサイト)のトップページや会社概要、料金表などのテキストデータをプログラムで事前にスクレイピング(自動抽出)し、それをLLM(大規模言語モデル)に渡して「この会社の事業内容に触れながら、親しみやすく褒め称える営業文を作成せよ」というプロンプトで文章を作らせています。

一見すると自社のためだけに書かれた丁寧なメールに見えるかもしれませんが、複数の事例を並べて比較すると、実際にはページの中身を人間がまったく読んでおらず、表面的なトピックや単語を拾い上げて、あたかも深く読み込んだかのように装う「AI構文」のクセが鮮明に浮かび上がってきます。

サイト内の表記ルールと矛盾する「貴社のホームページ(ウェブサイト)を拝見し」の罠

実際に届いたAI営業メールの文面を分析すると、非常に興味深い共通点が見つかります。 たとえば、ある営業メールでは「貴社がホームページ制作やSEO対策、オウンドメディア構築に取り組まれていることを拝見しました」と切り出し、別のメールでは「ホームページ制作に加え、SEOやWordPress、Webマーケティングまで包括的にご支援されていることを拝見し、ご連絡いたしました」と述べています。

また、別の事業者からのメールでは「静的HTMLサイト制作から既存ホームページのWordPress化まで、価格表に並んでいるのを拝見しました」と、具体的なページ内の要素を挙げてみせています。 さらに顕著なのが、「貴社の『ぜひホームページから問い合わせがたくさん来ることの喜びを実感してもらいたい』という想いを拝見し、SEOとサイト構造の最適化に力を入れて制作されている姿勢に感銘を受けました」という文面や、ホームページ(ウェブサイト)を拝見したとした上で「『建設業』分野での事業の伝え方に、誠実さと丁寧さを感じました」と語る文面です。

ここで決定的なボロが出るのが、用語の矛盾と文脈の不自然さです。AIが生成したテンプレート文面では、文脈を無視して定型的に「拝見し、〜の伝え方に誠実さと丁寧さを感じました」といった紋切り型の表現を使ってきます。

また、当社が数多くの業種の実績や解説を掲載している中で、たまたまクローラーが最初に拾った「建設業」という1単語だけを切り取って、あたかも建設業専門の会社であるかのように「建設業分野での事業の伝え方に誠実さと丁寧さを感じました」と褒めちぎるのも、人間がサイト全体を見ていれば決して起こらない、AIスクレイピング特有の浅薄な挙動です。

AI営業メールに頻出する特徴的なフレーズと構文パターン

こうしたAI生成の営業メールには、人間のお客様が仕事の依頼や相談をする際にはまず使わない、特有の構文パターンが存在します。

第一の特徴は、「突然のご連絡失礼いたします」「突然のご連絡、失礼いたします」「突然のご連絡を失礼いたします」という定型的な切り出しです。本来、ホームページ(ウェブサイト)の制作依頼や相談をしたい見込み客は、その窓口が問い合わせのためにあることを知っているため、「突然のご連絡失礼いたします」などとは書きません。「初めてお問い合わせいたします」や「ホームページのリニューアルについて相談させてください」と用件から入るのが自然です。

第二の特徴は、カギカッコ(「」)を使って自社のホームページ(ウェブサイト)上のキャッチコピーや特定の業種名をそのまま引用し、その直後に「〜という想いを拝見し」「〜に取り組まれていることを拝見しました」「〜の姿勢に感銘を受けました」「〜に誠実さと丁寧さを感じました」と繋げる、過度なヨイショ(称賛)構文です。 第三の特徴は、その称賛の直後に「毎日の雑務は、AIに任せられる部分が増えています。浮いた時間を、お客様へのヒアリングに使えれば、貴社の強みがさらに活きると考えています」や「制作後のお客様から、営業の進め方についてご相談を受けることはございませんか」「貴社の強みがより届く形で、開発面からご一緒できれば幸いです」といった具合に、強引に自社の商材(AIツール、営業支援、外注協業、採用診断など)の話題へと論理を飛躍させる展開です。

AIコーディング技術で実装する「AI営業文・スパム検知フィルター」の具体設計

これらの特徴が明確にわかっているのであれば、Claude CodeやGPT Codex、GeminiなどのAIを使って、メッセージ本文の中にこれらのパターンが含まれているかを自動判定するスコアリング(点数化)フィルターをPHPやCGIで実装することができます。

単独NGワードと複合条件(スコアリング)の組み合わせ

スパムフィルターを設計する際、単純に「営業」や「ご提案」といった1単語だけで即座にブロックしてしまうと、本当のお客様からの「店舗の営業時間を載せるホームページを作りたい」「リニューアルの提案をお願いしたい」といった正当な問い合わせまで誤って弾いてしまう(フォルス・ポジティブ)危険があります。

そこで、1発でブロックする「絶対NG条件」と、複数の特徴が重なったときにブロックする「複合スコアリング条件」の2段階に分けてロジックを組みます。 まず絶対NG条件としては、本来の顧客が絶対に送ってこない文字列を指定します。たとえば、今回届いた実例の中にも「utm_source=bakuapo&utm_medium=form&utm_campaign=…」といった、フォーム営業代行ツール(バクアポ等)がクリック計測のために付与する特有のURLパラメータが含まれていました。本文内に「utm_source=」「utm_medium=form」や、Googleカレンダー等の日程調整ツールのURL(calendar.app.google等)、あるいは既知のスパム送信ドメインが含まれている場合は、100パーセント営業スパムであるため即座に遮断します。 次に複合スコアリング条件として、AI営業文特有のフレーズに点数を設定します。たとえば、「突然のご連絡」が含まれていればプラス3点、「拝見し」「拝見しました」が含まれていればプラス2点、「感銘を受けました」「誠実さと丁寧さを感じました」「包括的にご支援」が含まれていればプラス3点、「貴社の強みが」「お役に立てる場面も」「ご一緒できれば幸いです」「ご担当外の方が」が含まれていればプラス2点、さらに本文内に外部URL(https://)が含まれていればプラス2点といった具合に配列と正規表現で定義し、合計スコアが5点を超えた場合に「AI自動営業メール」と判定してブロックします。

このような正規表現とスコアリングを組み合わせた検証関数は、人間がゼロから書くと記述ミスが起きやすいものの、GeminiやClaude Codeに「以下の営業メール実例の特徴を捉えて、誤検知を防ぎつつスパムだけを判定するPHPのスコアリング関数を作成して」と指示を出せば、極めて精緻なコードを瞬時に生成してくれます。新しい手口の営業メールがすり抜けてきた場合も、その文面をAIに追加入力して条件配列をアップデートするだけで、フィルターの精度をいくらでも洗練させていくことができます。

エラー表示による再送信を防ぎ静かに破棄する「サイレントドロップ」の有効性

なお、このコンテンツフィルターで営業メールを検知した際の「処理の返し方」にも重要な技術的ノウハウがあります。もし、AI営業文や特定キーワードを検知した際に、画面上で「NGワードが含まれているため送信できません」という正直なエラーメッセージを表示してしまうと、半自動で送信している営業マンや高度なAIエージェントは、「どの単語が引っかかったのか」を察知し、表現を少し変えて送信ボタンを押すという試行錯誤を繰り返してしまいます。これを防ぐために極めて有効なのが、ボットやスパマーに対しては画面上であたかも「送信が完了しました(お問い合わせありがとうございます)」という通常の完了画面を表示しておきながら、サーバーの裏側では管理者へのメール転送処理も、送信者への自動返信メール処理も一切実行せず、ログファイルや専用データベースの「スパム隔離領域」にだけ静かに記録して処理を終了する「サイレントドロップ(シャドウバン)」という手法です。

この仕組みを導入すると、自動営業ツール側の画面では「送信成功」とカウントされるため、相手はブロックされたことにすら気づかず、同じフォームに対して執拗にリトライしてくることもありません。そしてホームページ(ウェブサイト)の運営者のもとには、営業メールの通知が1通も届かない平穏な日常が戻ってきます。万が一の誤判定が心配な場合でも、サーバー内の隔離ログを週に1回や月に1回ざっと眺めるだけで済むため、日々の業務が中断されるストレスから完全に解放されます。

技術の悪用ではなく誠実な対話へ|AI時代の営業とホームページ運営のあり方

ここまで、Cloudflare Turnstileによるボット遮断から、AIのコーディング技術を活用したメールフォームの独自カスタマイズ、そしてAI営業文の検知・排除ロジックに至るまで、具体的な技術的防衛策を解説してきました。

相手がAIと自動化プログラムで武装して無差別な攻撃を仕掛けてくる以上、私たちもまた技術と知恵をもって自社の窓口を守り抜くことが重要です。

技術的防衛によって守られた窓口こそが本来の顧客との接点になる

お問い合わせフォームに堅牢な防衛システムを構築することの本当の価値は、単に迷惑メールが減ってスッキリすることだけではありません。最大の価値は、自社のスタッフが「目の前の本当のお客様」と向き合うための時間と心の余裕を取り戻せる点にあります。

毎日何十件、何百件もの営業スパムが通知される環境では、担当者の感覚が麻痺してしまい、その中に紛れ込んでいた1件の大切な見込み客からの相談を見落としてしまったり、スパム処理の苛立ちから本来の顧客対応の質が落ちてしまったりするリスクが常に伴います。

技術的に防げるノイズを入口で確実に遮断しておくことで、フォームから通知が届いたときには「自社を本当に必要としてくれている誰かからの連絡だ」と確信して、喜びをもって迅速かつ丁寧に対応できるようになります。それこそが、ホームページ(ウェブサイト)のお問い合わせフォームが本来あるべき健全な姿です。

AIに調べさせた表面的な共感ではなくラブレターのように一文字一文字丁寧に書く姿勢

最後に、もし現在もAIや自動送信ツールを使って他社の問い合わせフォームへ営業メールを送っている方、あるいはこれからそうした手法に手を出そうとしている方がこの記事を読まれているのであれば、ひとつだけお伝えしたいことがあります。

プログラムに企業のホームページ(ウェブサイト)を巡回させ、表面的なキーワードだけをAIに拾わせて、「貴社の想いを拝見し感銘を受けました」「誠実さと丁寧さを感じました」といった、心のこもっていない美辞麗句を自動生成して送りつけるのは、もうやめるべきです。

受け取る側の人間は、あなたが思っている以上に敏感です。

自分の会社のホームページ(ウェブサイト)を本当に隅々まで読んでくれた人が書いた文章なのか、それともAIに要約させてテンプレートに当てはめただけの薄っぺらな文章なのかは、最初の数行を読んだだけで簡単に見抜くことができます。

理解しているふりをして近づいてくる自動生成のメッセージほど、読み手の心を冷めさせ、送り主に対する軽蔑と不信感を抱かせるものはありません。

事業における取引や協業とは、突き詰めれば人と人との信頼関係そのものです。もし本当に「この会社と一緒に仕事がしたい」「この会社の役に立ちたい」と心から願う相手がいるのであれば、AIに下調べや文章作成を丸投げして何千社ものリストの1件として処理するような真似はしないはずです。

本当に誰かに想いを届け、新しいご縁を結びたいと願うのなら、まずは自分自身の目で相手のホームページを隅々まで読み込み、その企業が歩んできた歴史や大切にしている哲学を深く理解することです。

そして、あたかも大切な人にラブレターを書くように、自分の頭で考え、自分の言葉で、一文字一文字丁寧にメッセージを書き上げてください。効率や自動化という言葉の陰で忘れ去られようとしているその泥臭い誠実さこそが、AIによる大量生産の言葉が溢れかえるこれからの時代において、唯一、人の心を動かす力を持っています。

Claude CodeやGPT Codexはスパム量産のためにあるのか?AI自動営業ツールの蔓延と構造的欠陥への警鐘

お問い合わせフォームから届く迷惑メールや営業メールへの対策


著者・監修 : 株式会社ファンフェアファンファーレ

2012年創業、京都のWeb制作・マーケティング会社。過去には公的機関(滋賀県産業支援プラザ等)での専門家登壇実績も有し、SEO対策、次世代のAI検索最適化(LLMO・AIO)、コンテンツマーケティングなど「事業の収益(ROI)に直結するノウハウ」を発信しています。 弊社では、証券外務員やFP(ファイナンシャルプランナー)といった金融・財務の有資格者の知見を事業に組み込み、単なるIT視点ではなく「確実な事業投資としてのWebマーケティング」を厳格に設計しています。そのため、「納品をゴールとした単発の制作請負」は行わず、新規制作数を170社超に限定。一方で、他社制作サイトの複雑なエラー修正・SEO改修(720件以上)や、公開後の継続的なサイト改良・マーケティング支援(現在も17社と中長期契約中)に圧倒的なリソースを集中しています。 表面的なデザインではなく、中小企業が競争を勝ち抜くための「本質的な集客の仕組み」をお届けします。 (執筆・監修:株式会社ファンフェアファンファーレ 代表取締役 桝井 晶平)

「Cloudflare TurnstileとAI技術で自動営業スパムを遮断する方法|ボット対策からAI営業文の検知・排除まで」のカテゴリ
Web制作・Web関連
タグ: , , , ,


ホームページ制作・カスタマイズ、Webマーケティング・SEOなどのお問い合わせ・ご依頼