「お問い合わせフォームから営業メールが大量に届く」「公開しているメールアドレスに迷惑メールが増えた」といった悩みは、サイトを運営するうえで身近な問題です。
そのとき、「お問い合わせ先のメールアドレスを変えれば安全になる」と考えてしまいがちですが、アドレスの変更だけでは解決しないケースがあります。
大切なのは、メールアドレスの収集、フォームからの迷惑送信、メールアカウントへの不正ログインを分けて考えることです。
この記事では、Cloudflare Turnstile、Akismet Anti-spam: Spam Protection、GRM Base Kitのメールアドレス保護を紹介しながら、サイトとメールの両方で見直したい対策をまとめます。
あわせて、送信前に入力内容を確認できる「GRM CF Confirm」もご紹介します。迷惑送信への対策と、利用者が間違えずに問い合わせできる使いやすさを、両方整えていきましょう。
最初に確認したい、メールに関する3つの問題
迷惑メールやメールに関する被害は、届く経路や原因によって対策が異なります。
| 問題 | 起きていること | 主な対策 |
|---|---|---|
| 公開アドレスへの迷惑メール | 収集・推測されたアドレスへ直接メールが送られる | 公開方法の見直し、アドレス保護、メールサービス側の迷惑メールフィルター |
| フォームからの迷惑送信 | お問い合わせフォームを使って不要な投稿が送られる | Turnstile、Akismet、送信回数の制限 |
| メールアカウントの乗っ取り | パスワードの流出やフィッシングなどで不正ログインされる | 強いパスワード、使い回し防止、多要素認証 |
フォームに迷惑送信対策を入れても、メールアドレスへ直接届く迷惑メールまで止められるわけではありません。
反対に、メールアドレスの掲載をやめても、公開されているフォームが狙われることはあります。まず、どこから届いているのかを確認しましょう。
お問い合わせ先のメールアドレスを変えれば安全になる?
フォームの受信先を変えても、迷惑投稿は止まらない
フォームから届く迷惑メールは、攻撃者が受信先のアドレスを知って送っているとは限りません。
フォームに名前や本文を入力して送信すれば、サイト側が設定された受信先へメールを届けます。そのため、受信先を変更しても、同じフォームから投稿できる状態が続けば、新しいアドレスにも迷惑メールが届きます。
この場合に必要なのは、フォームの送信を判定・制限する対策です。
アドレスの変更が役立つ場面もある
すでに大量の迷惑メールが直接届いているアドレスを整理し、公開用と社内用の連絡先を分けることは、運用の改善につながります。
ただし、新しいアドレスを同じように公開すれば、再び収集される可能性があります。古いアドレスからすべて転送している場合は、迷惑メールも引き続き届くことがあります。
アドレスの変更は、公開方法や受信設定とあわせて検討しましょう。
アドレスが知られることと、乗っ取られることは別
メールアドレスは連絡先として公開することがある情報です。知られただけで、直ちにメールボックスを読まれるわけではありません。
一方、ログインIDとして使われる場合もあるため、パスワードの使い回しやフィッシングへの備えは欠かせません。
メールアドレスの変更は、パスワードや多要素認証の代わりにはなりません。
サイトに掲載するメールアドレスの扱い方
直接掲載する場所を整理する
メールアドレスは、お問い合わせページだけでなく、フッター、会社概要、記事、PDFなどに掲載されていることがあります。
まずは公開箇所を確認し、連絡先として必要な場所に整理しましょう。担当者個人のアドレスを広く公開するより、問い合わせ専用の窓口を用意すると、担当変更にも対応しやすくなります。
また、公開用アドレスと、サーバーやドメインの管理・復旧に使うアドレスを分けると、重要な通知が営業メールなどに埋もれにくくなります。ただし、分けただけで不正ログインを防げるわけではありません。
「@を別の文字にする」「画像にする」だけでは十分ではない
「@を★に置き換えてください」と記載したり、メールアドレスを画像で掲載したりする方法もあります。
ただし、利用者に入力の手間がかかり、画像では読み上げやコピーが難しくなります。文字の置き換えや画像内の文字を読み取る収集方法もあるため、完全な対策とはいえません。
利用者が連絡しやすいことと、自動収集されにくいことの両方を考える必要があります。
GRM Base Kitの「メールアドレス保護」
GRM Base Kitには、公開するメールアドレスを収集Botに読み取られにくくする「メールアドレス保護」機能があります。
ページのHTMLにメールアドレスをそのまま記載せず、表示時にJavaScriptでメールリンクを組み立てる仕組みです。
ブロック「メールアドレス(GRM)」とショートコードに対応しており、メールで直接連絡できる導線を残しながら、単純な自動収集への対策を加えられます。
メールアドレスを掲載する場面で使う機能
会社概要やお問い合わせページなど、メールアドレスを表示したい場所で活用できます。
ただし、JavaScriptを実行してページを読み取るBotや、人による収集まで完全に防ぐものではありません。また、すでに収集されたアドレスを取り戻したり、フォームからの迷惑送信を止めたりする機能でもありません。
GRM Base Kitは公開アドレスの収集対策、TurnstileやAkismetはフォームへの迷惑送信対策として、役割を分けて活用します。
導入後は、スマートフォンでもアドレスやリンクが正しく表示され、連絡できることを確認しましょう。
詳しくは、GRM Base Kitの紹介ページをご覧ください。
Cloudflare Turnstileで自動送信への対策をする
Cloudflare Turnstileは、フォームなどへのアクセスを判定し、Botによる自動化された不正利用を抑える仕組みです。
複雑な画像選択を利用者に繰り返し求めることを避けながら、フォームの迷惑送信対策を追加できます。Cloudflareのネットワーク経由でサイト全体を配信していない場合でも利用できます。
Contact Form 7では連携機能を利用できる
Contact Form 7には、Turnstileとの連携機能があります。
基本的な流れは次のとおりです。
- CloudflareでTurnstileのウィジェットを作成する
- 利用するサイトのホスト名を登録する
- サイトキーとシークレットキーを取得する
- WordPressの「お問い合わせ → インテグレーション」でTurnstileを設定する
- 実際のフォームから送信テストを行う
シークレットキーは公開せず、設定画面のスクリーンショットなどにも写り込まないようにします。
認証表示が出ているだけでは不十分
Turnstileは、画面にウィジェットを表示するだけでは保護が完了しません。送信を受け取るサーバー側で認証結果を検証し、失敗した送信を受け付けない処理が必要です。
対応するフォームプラグインの連携機能を利用し、独自フォームの場合はサーバー側の検証まで実装されているか確認してください。
確認画面やポップアップを挟むフォームでは、入力に時間をかけた場合、確認画面から戻った場合、再送信する場合もテストしましょう。
Akismetで投稿内容からスパムを判定する
「Akismet Anti-spam: Spam Protection」は、コメントや対応するフォームの投稿データをもとに、スパムを判定するサービスです。
Turnstileが自動化された不正送信への対策を担うのに対し、Akismetは投稿内容などの情報から迷惑投稿を判定します。
異なる仕組みを組み合わせることで、フォームの迷惑送信対策を補強できます。
有効化するだけで、すべてのフォームが保護されるわけではない
Akismetとの連携方法は、使っているフォームプラグインによって異なります。
Contact Form 7では、Akismetの有効化とAPIキーの設定に加え、名前やメールアドレスなどの入力項目に連携用の指定が必要です。
プラグインが有効になっていることだけで判断せず、使用中のフォームが実際に判定対象になっているかを確認しましょう。
利用プランとデータの扱いも確認する
Akismetには個人向けと商用向けのプランがあります。企業サイトや事業用サイトでは、用途に合った契約条件を確認してください。
また、Contact Form 7との連携では、フォームの入力内容や送信環境の情報が判定のためにAkismetへ送られます。収集する項目を必要な範囲に絞り、外部サービスの利用をプライバシーポリシーなどで説明しましょう。
スパム判定には誤判定もあります。導入後は通常のお問い合わせが送信できることを確認し、保存機能を利用している場合は、迷惑投稿として分類された内容も適切に確認します。
参考:Contact Form 7・Akismetによるスパムフィルタリング
送信前に内容を見直せる「確認画面」も大切
海外のサイトでは、入力後にそのまま送信するフォームを見かけます。一方、日本向けのサイト制作では、「送信前に確認画面を入れたい」という要望をいただくことがあります。
どちらが適しているかは、問い合わせの内容や入力項目の数、利用者によって異なります。
短い問い合わせでは少ない操作で送信できることが便利です。一方、相談内容や連絡先など複数の情報を入力する場合は、送信前にまとめて見直せる確認画面が役立ちます。
確認画面は入力ミスを減らすための機能
メールアドレスを間違えると、問い合わせを受け付けても返信できません。電話番号や希望内容の誤りも、その後のやり取りに影響します。
確認画面では、入力内容を一覧にして見直し、誤りに気づいたら修正できます。
ただし、確認画面があるだけで、Botによる投稿や不正な送信を防げるわけではありません。
確認画面は利用者の入力確認を支援し、TurnstileやAkismetは迷惑送信への対策を担います。それぞれの役割を組み合わせることが大切です。
GRM CF Confirmで、ページ移動のない確認画面を追加
GRM CF Confirmは、Contact Form 7で作成したフォームに「入力 → 確認 → 送信」の流れを追加するプラグインです。
当サイトのお問い合わせフォームでも使用しています。
確認ボタンを押すと、入力内容をポップアップで表示します。確認のために別のページへ移動する必要がなく、その場で内容を見直せます。
誤りがあれば「戻る」で修正し、問題がなければ「送信」へ進めます。確認用のページを別に作成する必要もありません。
GRM CF Confirmの主な機能
| 機能 | できること |
|---|---|
| 確認画面の追加 | 入力内容を一覧表示し、送信前に見直せる |
| ページ移動のない確認 | 同じページ上のポップアップで内容を確認できる |
| 入力画面へ戻る | 送信前に入力内容を修正できる |
| フォームごとの切り替え | 必要なフォームだけ確認画面を有効にできる |
| 確認前の入力チェック | 必須項目、メールアドレスの形式、確認用アドレスとの一致を確認 |
| 送信完了後のページ移動 | フォームごとに設定したサンクスページへ移動 |
| 条件による項目表示 | 選択内容に応じて、表示する入力項目を切り替えられる |
確認画面を開くときにはページを移動せず、送信が完了した後にサンクスページへ進む構成にできます。
なお、メールアドレスの形式チェックや確認用アドレスとの一致チェックは、入力ミスを減らすためのものです。そのアドレスが実在することや、入力した本人のものであることを証明するものではありません。
詳しくは、GRM CF Confirmの紹介ページをご覧ください。
各機能の役割を整理する
| 機能・サービス | 主な役割 |
|---|---|
| GRM Base Kitのメールアドレス保護 | 公開アドレスを単純な収集Botに読み取られにくくする |
| Cloudflare Turnstile | Botによる自動化された不正送信を抑える |
| Akismet | 投稿データからスパムを判定する |
| GRM CF Confirm | 送信前の内容確認と入力ミスの防止を支援する |
| 強いパスワード・多要素認証 | メールや管理アカウントへの不正ログインに備える |
これらを導入しても、メールアドレスへ直接届く迷惑メールには、メールサービス側のフィルターなどが必要です。
また、フォームプラグインの脆弱性や、管理者アカウントの乗っ取りを防ぐ対策も継続します。
見落としやすい「自動返信メール」の悪用
自動返信メールは、問い合わせを受け付けたことを伝える便利な機能です。
しかし、フォームに入力されたアドレスへ自動返信する仕組みは、第三者のメールアドレスを入力されると、その相手へメールを送ってしまいます。
大量送信されたり、入力された広告文や不審なURLをそのまま返信したりすると、自分のサイトが迷惑メール送信に悪用されるおそれがあります。
自動返信を使う場合に見直したいこと
- TurnstileやAkismetなどの判定を、自動返信にも適用する
- 必要に応じて、連続送信や短時間の大量送信を制限する
- 自動返信の本文は、受付完了を伝える定型文を中心にする
- 入力された本文やURL、個人情報をそのまま返信する必要があるか見直す
- 自動返信が不要なフォームでは、送信完了画面での案内にする
入力されたアドレスが実在していても、入力した本人のものとは限りません。確認画面で内容を確認した場合も、この点は変わりません。
Contact Form 7の公式情報でも、利用者が指定したアドレスへ送信する設定の悪用リスクと、迷惑送信対策の必要性が案内されています。
参考:Contact Form 7・安全でないメール設定について
送信元・返信先・受信先を正しく設定する
フォームのメール設定では、それぞれのアドレスの役割を区別しましょう。
| 設定項目 | 役割 | 設定の考え方 |
|---|---|---|
| 送信先(To) | 管理者向け通知を受け取る宛先 | 問い合わせ担当の受信アドレスを指定 |
| 送信元(From) | フォームの通知メールを送る名義 | サイトのドメインに属し、送信サービスで認証できるアドレスを指定 |
| 返信先(Reply-To) | 管理者が返信するときの宛先 | フォームに入力された問い合わせ者のアドレスを指定 |
問い合わせ者のアドレスをそのまま送信元にすると、サイト側のサーバーが他社ドメインを名乗って送る形になり、なりすましと判断されやすくなります。
送信サービスの案内に従ってSPF・DKIMなどのメール認証も設定しましょう。これらは送信元の正当性を確認するための仕組みで、フォームへの迷惑投稿を判定するものではありません。
参考:Contact Form 7・メール設定のベストプラクティス
パスワードは、フォームとメールの両方で見直す
フォームを保護していても、通知先のメールアカウントを乗っ取られると、お問い合わせ内容を読まれたり、取引先へのなりすましに悪用されたりするおそれがあります。
メールは、ほかのサービスのパスワード再設定にも使われるため、重要な管理対象です。
長く、推測されにくく、使い回さない
会社名、電話番号、誕生日、メールアドレスの一部など、推測しやすい文字列は避けましょう。
サービスが対応している範囲で、16文字以上を目安に、十分に長くランダムなパスワードを使います。パスワード管理ツールを利用すると、サービスごとに異なるパスワードを作成・保管しやすくなります。
特に、次のアカウントで同じパスワードを使い回さないことが重要です。
- WordPressの管理者アカウント
- お問い合わせを受信するメールアカウント
- サーバーの管理アカウント
- ドメインの管理アカウント
多要素認証を有効にする
メールサービスや管理画面で利用できる場合は、多要素認証を有効にします。対応しているサービスでは、パスキーやセキュリティキーも選択肢になります。
認証手段を失った場合に備えて、復旧方法とバックアップコードの保管場所も確認してください。
不審なログインがあった場合は、パスワード変更だけで終わらせない
不正アクセスが疑われる場合は、パスワードの変更とあわせて、ログイン履歴、知らない端末、外部アプリとの連携、メールの転送設定などを確認します。
攻撃者が転送先を追加していると、パスワードを変更した後もメールが外部へ転送される可能性があります。
メールサービスの提供元や保守担当者と連携し、残っているアクセス手段がないか確認しましょう。
フォームで受け取った情報も保護する
お問い合わせフォームには、名前、電話番号、メールアドレス、相談内容などが入力されます。迷惑送信を減らすこととあわせて、受け取った情報の管理も必要です。
入力項目は必要なものに絞る
問い合わせへの回答に不要な情報まで集めないようにしましょう。一般的なお問い合わせフォームでは、パスワードやクレジットカード情報の入力を求めないことも大切です。
保存先と閲覧できる人を把握する
データがメールボックス、WordPressのデータベース、外部サービスなど、どこに保存されるのかを確認します。
Contact Form 7は標準では投稿内容をデータベースへ保存しませんが、保存用プラグインや外部連携を追加すると保存先が増えます。保存する場合は、閲覧権限や保存期間も決めましょう。
参考:Akismet・Contact Form 7の保存機能について
添付ファイルと更新にも注意する
添付ファイルを受け付ける場合は、必要な形式とサイズに制限します。届いたファイルや本文中のリンクを無条件に開かない運用も必要です。
WordPress本体、フォームプラグイン、関連する拡張機能は継続して更新します。HTTPSを利用していても、ソフトウェアの弱点や受信後の情報管理まで解決できるわけではありません。
導入後は「正常に問い合わせできるか」を確認する
迷惑送信を減らせても、正規のお問い合わせまで届かなくなっては困ります。
確認画面や迷惑送信対策を組み合わせる場合は、実際の環境で一連の操作をテストしましょう。
- パソコンとスマートフォンの両方から送信できるか
- 確認画面に、送信前に見直すべき内容が表示されているか
- 確認画面から戻り、修正した内容が正しく反映されるか
- 入力に時間がかかった場合も、認証をやり直して送信できるか
- 送信ボタンの連打で、同じ問い合わせが重複して送られないか
- 送信に失敗したとき、完了ページへ移動してしまわないか
- 管理者向け通知と、必要な自動返信が届くか
- 正常な問い合わせが迷惑メールに分類されていないか
- キーボード操作でも、確認・修正・送信ができるか
フォームや関連プラグインを更新した後も、送信テストを行う運用にしておくと安心です。
安全性と使いやすさを両立したお問い合わせフォームへ
お問い合わせ先のメールアドレスを変えるだけでは、フォームの迷惑送信やメールアカウントの乗っ取りまで防ぐことはできません。
公開アドレスの収集対策にはGRM Base Kitのメールアドレス保護、フォームの自動送信対策にはCloudflare Turnstile、投稿内容のスパム判定にはAkismet。それぞれの役割を理解して使うことが大切です。
さらに、GRM CF Confirmで送信前に入力内容を見直せるようにすると、連絡先や相談内容の入力ミスに気づきやすくなります。
メールの送信設定、自動返信の内容、パスワード、多要素認証、受信した情報の保管方法まで見直し、利用者が安心して問い合わせできる窓口を整えましょう。
メールフォームの迷惑送信や確認画面の追加、サイト上のメールアドレスの扱いにお困りの方は、お問い合わせフォームからご相談ください。
