2026年10月10日
2026年10月10日
WordPressでお問い合わせフォームを設置する方法|Contact Form 7の設定・メール送信・スパム対策
WordPress にお問い合わせフォームを置くなら、フォームプラグインで項目とメール通知を設定し、固定ページに埋め込むのが基本の流れです。この記事では、無料で使える Contact Form 7 を例に、フォームの作成、メール設定、ページへの設置、届かないときの SMTP 設定、スパム対策、個人情報の扱いまでを順に説明します。最後に、公開前に確認しておきたいテスト項目もまとめます。
設置する前に決めておくこと
フォームは「置いて終わり」ではなく、届いたメールを誰がどう受け取るかまで決めておくと、公開後に慌てずに済みます。
- 入力項目: 名前・メールアドレス・内容の3つが最小構成です。電話番号や会社名は、本当に必要なときだけ追加します。項目が多いほど入力をやめる人が増え、預かる個人情報も増えます。
- 通知先のメールアドレス: 担当者個人のアドレスより、共有の受付用アドレスのほうが、担当が変わっても運用を続けやすくなります。
- 自動返信の有無: 送信者に「受け付けました」と返すかどうか。返す場合は、返信までの目安や問い合わせ番号の扱いも決めておきます。
- 個人情報の扱い: 何の目的で使い、どれくらい保管するか。プライバシーポリシーのページがまだ無ければ、フォームより先に用意します。
フォームプラグインの選び方
代表的な選択肢は次のとおりです(2026年10月現在)。機能の範囲や無料版と有料版の分け方は更新で変わるため、導入前に各プラグインの公式ページで確認してください。
- Contact Form 7: 長く使われている定番の無料プラグインです。フォームをタグで記述する方式で、見た目の自由度が高い一方、ドラッグ操作の編集画面はありません。送信内容の保存は、同じ作者の Flamingo を追加すると管理画面に残せます。
- WPForms(Lite 版): ドラッグ&ドロップでフォームを組み立てられます。無料版でも基本的な問い合わせフォームは作れますが、一部の機能は有料版向けです。
- Snow Monkey Forms: 日本の開発者によるプラグインで、ブロックエディターでフォームを組み立て、入力内容の確認画面を挟む構成も作れます。
日本で広く使われてきた MW WP Form は開発終了が告知されています。これから設置するなら、更新が続いているプラグインを選んでください。以下では Contact Form 7 を例に進めます。
手順1: Contact Form 7 をインストールする
作業前に、サイトのバックアップを取っておきます。管理画面の「プラグイン」→「新規追加」で「Contact Form 7」を検索し、インストールして有効化します。有効化すると管理メニューに「お問い合わせ」が追加され、サンプルのフォームが1つ作られています(メニュー名は版や言語設定で変わることがあります)。
手順2: フォームの項目を作る
フォームの編集画面の「フォーム」タブに、入力欄を表すタグを並べます。サンプルを次のように書き換えると、名前・メールアドレス・件名・内容・同意チェックの構成になります。
<label> お名前(必須)
[text* your-name autocomplete:name] </label>
<label> メールアドレス(必須)
[email* your-email autocomplete:email] </label>
<label> 件名
[text your-subject] </label>
<label> お問い合わせ内容(必須)
[textarea* your-message] </label>
[acceptance your-consent] プライバシーポリシーに同意します [/acceptance]
[submit "送信する"]
タグ名の後ろの * が入力必須の印です。your-name などの部分は項目の名前で、次のメール設定で [your-name] のように呼び出します。ここを変えたらメール設定側も合わせて変えないと、メール本文に値が入りません。autocomplete を付けておくと、ブラウザーの自動入力が効きやすくなり、スマートフォンでの入力が楽になります。
<label> で入力欄を囲むのは、ラベルをクリックしたときに入力欄が選ばれるようにするためと、読み上げソフトに項目名を伝えるためです。見た目を整えるときも、ラベルは消さずに残してください。
手順3: 通知メールと自動返信を設定する
「メール」タブで、サイト管理者に届く通知メールを設定します。主な欄と設定の考え方は次のとおりです(画面の表記は版によって異なる場合があります)。
送信先: info@example.com
送信元: [_site_title] <wordpress@example.com>
題名: [_site_title] お問い合わせ: [your-subject]
追加ヘッダー: Reply-To: [your-email]
メッセージ本文:
お名前: [your-name]
メールアドレス: [your-email]
件名: [your-subject]
[your-message]
つまずきやすいのは「送信元」です。ここに問い合わせた人のメールアドレス([your-email])を入れると、他人のドメインを名乗ってメールを送る形になり、迷惑メール扱いや受信拒否の原因になります。送信元はサイトと同じドメインのアドレスにして、問い合わせた人への返信先は「追加ヘッダー」の Reply-To で指定します。こうすると、受信したメールで「返信」を押せば問い合わせた人宛てになります。
自動返信を送る場合は、同じタブの「メール (2)」を有効にし、送信先を [your-email] にします。本文には受付の旨と返信の目安を書き、入力内容をそのまま全部載せるかどうかは慎重に決めてください。入力欄に第三者のアドレスを入れられると、その人に意図しないメールが届くためです。
手順4: 固定ページに設置する
フォームを保存すると、一覧画面にショートコードが表示されます。 エラー: コンタクトフォームが見つかりません。 の形で、id の部分は版によって数字だったり英数字の文字列だったりします。コピーして、お問い合わせ用の固定ページに貼り付けます。ブロックエディターでは「ショートコード」ブロックに貼るか、Contact Form 7 のブロックを挿入してフォームを選ぶ方法もあります。
固定ページを公開したら、グローバルメニューやフッターからリンクしておきます。サイトが HTTPS で表示されているかも確認してください。HTTP のままだと、入力内容が暗号化されずに送られます。
手順5: メールが届かないときは SMTP を設定する
フォームから送信すると「送信しました」と表示されるのにメールが届かない、という相談はとても多いです。WordPress は標準ではサーバーの PHP の仕組みでメールを送るため、サーバーの設定や受信側の迷惑メール判定によって、届かない・迷惑メールフォルダに入るといったことが起こります。
対策は、WP Mail SMTP などの SMTP プラグインで、自分のドメインのメールサーバーや外部の配信サービスを経由して送ることです。あわせて、送信に使うドメインに SPF・DKIM・DMARC が設定されているかを確認します。これらはドメインの DNS で設定するもので、手順はメールサーバーや配信サービスの案内に従ってください。
手順6: スパム対策を入れる
公開して数日から数週間で、機械的な迷惑送信が届き始めることがよくあります。Contact Form 7 には次のような対策があります。
- reCAPTCHA(v3): 「インテグレーション」の画面で Google から取得したキーを登録すると有効になります。
- Cloudflare Turnstile: 新しい版では連携機能が用意されています。対応状況は公式ドキュメントで確認してください。
- Akismet との連携: Akismet を使っている場合、フォームタグに設定を加えて判定させる方法があります。
- クイズ形式の項目:
[quiz]タグで簡単な質問を出す方法もありますが、利用者の手間が増えます。
reCAPTCHA や Turnstile は、入力者の端末情報などを外部サービスに送ります。導入した場合は、そのことをプライバシーポリシーに記載してください。
個人情報とプライバシーポリシー
フォームで受け取るのは個人情報です。利用目的と問い合わせ窓口をプライバシーポリシーに書き、フォームの近くからリンクします。手順2の同意チェック([acceptance])は、チェックしないと送信できない仕組みです。
Flamingo などで送信内容を管理画面に保存する場合は、管理画面にアクセスできる人を必要最小限にし、不要になったデータを定期的に削除します。保存しない運用なら、受信したメールの保管場所と期間を決めておきます。
公開前のテスト項目
設定が終わったら、実際に送信して次の点を確認します。
- 通知メールが受付用アドレスに届き、迷惑メールフォルダに入っていない
- 本文に入力内容が正しく入っている(空欄の項目があれば手順2と手順3の項目名を見直す)
- 受信メールで「返信」を押すと、問い合わせた人のアドレス宛てになる
- 自動返信が送信者に届く
- 必須項目を空にしたとき、エラーが表示されて送信されない
- スマートフォンで表示が崩れず、入力しやすい
キャッシュ系のプラグインを使っている場合、フォームのページがキャッシュされると、送信時にエラーが出ることがあります。うまくいかないときは、フォームのページをキャッシュの対象から外して試してください。
まとめ
- フォームを作る前に、項目・通知先・自動返信・個人情報の扱いを決める
- Contact Form 7 ではフォームタグで項目を作り、メール設定で同じ項目名を呼び出す
- 送信元はサイトと同じドメインにし、返信先は
Reply-Toで指定する - 届かないときは SMTP プラグインで送信経路を整え、SPF・DKIM・DMARC を確認する
- スパム対策と、プライバシーポリシーへの記載をセットで行う
- 公開前に、実際に送信してメールの中身と返信先まで確認する