ブログ始め方ガイドブログ始め方ガイド
メニュー

ホーム / WordPressを使う・守る

WORDPRESS · CONTACT FORM 7

お問い合わせフォームを、受信まで確かめて設置する。

Contact Form 7で入力欄を作り、メールの宛先・差出人・返信先を対応させます。固定ページに表示したら、自分が管理するメールで実際の受信と返信まで確認しましょう。

公式情報・隔離操作の確認:2026年10月21日。自分で管理するWordPressが対象。操作画面は合成データによる独立環境です。実メールの配送・受信は今回実証していません。

「送信完了」が出ても、受信箱へ届いたとは限りません。

入力欄の表示、送信処理、管理者の受信、必要なら自動返信を別々に確認します。すでに使えるフォームがあるなら、不要なフォームやプラグインを重ねて作る必要はありません。

先に、受け取る情報と担当を決める

何の問い合わせを受け、誰がどのメールアドレスで確認するかを決めます。利用目的、情報の扱い、必要な保存期間・問い合わせ先を案内できる状態にしましょう。これはフォーム設定だけで法律対応が完了するという意味ではありません。

入力欄必要な情報だけ
メール設定宛先とタグの対応
固定ページ公開側の表示
受信・返信最後まで照合

最初はメールアドレスと問い合わせ内容を中心にします。名前・電話番号・住所・添付ファイルを一律に必須にはしません。パスワード、認証コード、本人確認書類などを送らせるフォームにしないでください。既存フォームを変更する場合は、フォームとメール設定の元の値・掲載ページを控えます。

01 / 入力欄を作る

Contact Form 7を開き、項目を必要最小限にする

  1. 未導入の場合だけ、WordPressの「プラグイン → 新規追加」で公式のContact Form 7を確認してインストール・有効化。すでに有効ならそのまま使います。
  2. 管理画面の「お問い合わせ」から既存フォームを選ぶか、新規追加します。自分で区別できる管理用の名前を付けます。
  3. 「フォーム」タブで入力欄を編集。既存のフォームを変更すると、そのフォームを使うほかのページにも反映されるため、使用場所を先に確認します。

Contact Form 7公式の開始手順。以下は今回の隔離環境で使用した、名前は任意・メールと内容は必須の最小例です。既存フォームへ無条件に上書きせず、まず下書き・検証用フォームで確認してください。

<label>お名前(任意)
[text your-name maxlength:80]</label>
<label>メールアドレス(必須)
[email* your-email]</label>
<label>お問い合わせ内容(必須)
[textarea* your-message maxlength:2000]</label>
[submit "送信する"]

* はこの例の必須項目です。your-email などの名前は、後でメール設定と対応させます。画面の入力欄の名前を変えたら、メール側も見直します。

隔離Contact Form 7のフォームタブで入力欄を編集した実画面
実画面①:フォームタブの入力欄。コードの読み取りは上の本文例でも確認できます。英語のFormは日本語の「フォーム」に対応します。

02 / メールへ情報を渡す

To・From・Reply-Toを混同しない

「メール」タブを開きます。名前が似ていても、入力者と受信担当者は別です。入力者のアドレスをそのまま差出人にせず、返信先へ対応させます。

To/送信先問い合わせを受ける運営者
From/送信元サイト側の使用可能なアドレス
Reply-To/返信先フォーム入力者のメール
設定欄設定する内容確認すること
送信先(To)自分が実際に受信できる管理者のアドレス読者向けフォームの入力値へ置き換えない
送信元(From)サイトと同じドメインの、利用できる送信元アドレス提供者の送信設定・実在するメールボックスを確認。名前だけ作っても配送は保証されない
題名(Subject)例:お問い合わせ任意項目が空でも不正な題名にならない構成に
追加ヘッダーReply-To: [your-email]必須メール欄の名前と一致させる
メッセージ本文[your-name]
[your-email]
[your-message]
必要な入力がメールに展開されるか確認

フォーム側の [email* your-email] に対し、メール側は [your-email] です。メール本文へフォーム用タグや * をそのまま書きません。公式:フォームタグとメールタグ

隔離Contact Form 7の送信先Toと送信元Fromの設定実画面。合成アドレスのみ
実画面②:ToとFrom。画面内の.invalidアドレスは隔離検証用です。本番へコピーせず、自分の受信先とサイト側のアドレスに置き換えます。
隔離Contact Form 7の追加ヘッダーとメール本文の実画面。your-email等のタグを対応させた状態
実画面③:Additional headersへReply-To、Message bodyへ本文のタグを設定。この例では入力者のアドレスは返信先へ渡します。

保存後、もう一度「メール」タブを開き、値とタグ名を照合します。設定エラーの警告があれば、理由が分からないまま無視して公開しません。公式のメール設定と送信元・返信先の推奨設定に従い、メール提供者の条件も確認します。Fromを合わせるだけで認証や配送が完了するわけではありません。

自動返信「メール(2)」は必要な場合だけ

まず管理者宛メールを確認します。自動返信を使う運用なら、メール(2)を有効にし、入力者宛の送信先・本文・迷惑送信への対処を確認。管理者宛と自動返信を別々にテストします。新規実証ではメール(2)を有効にしていません。

03 / ページへ設置

固定ページにフォームを1つ配置し、公開側で見る

  1. フォーム設定を保存し、対象のフォームを確認します。別のフォームを選ばないよう管理用の名前を照合します。
  2. 「固定ページ → 新規追加」または既存の問い合わせページを開きます。ブロック追加でContact Form 7を選び、作成したフォームを指定。環境で使えない場合は、フォーム画面のショートコードを「ショートコード」ブロックへ貼り付けます。
  3. 下書きプレビューで入力欄を確認。コード文字列がそのまま見えるなら、貼付先のブロックやフォームの指定を見直します。
  4. 公開する場合は、ログアウト状態とスマートフォンでも確認。ラベル・必須項目・ボタンが読みやすいか、二重のフォームや横はみ出しがないかを見ます。

フォーム本体の設定画面を保存しただけでは、固定ページへの配置は完了しません。今回、ページへのショートコード挿入・公開状態への切替はWordPress APIで行いました。固定ページ編集UIを実操作した証拠とは分けています。

隔離WordPressでログアウト状態から表示したContact Form 7のフォーム実画面
実画面④:匿名表示のフォーム。実際の問い合わせ先として公開しているものではありません。この記事上の画像から送信はできません。

04 / 最後まで照合

完了表示・管理者の受信・返信を分けて確かめる

  1. 自分が管理する送信側メールで試す。氏名・住所などの本物の個人情報を使わず、テストと分かる文と確認時刻を入れます。第三者のメールアドレスを試験に使いません。
  2. 画面の結果を見る。入力不備が表示されたら該当項目を直します。完了メッセージが出た時刻と入力内容を手元に控えます。
  3. 管理者の受信箱で同じテストを照合。迷惑メールも確認。題名・本文・時刻と、必要な入力項目が含まれるかを見ます。完了表示だけでは受信済みにしません。
  4. 受信したメールへ返信。返信先がフォームへ入れた自分のアドレスになるか、実際に返信が戻るかを確認します。
  5. メール(2)を使う場合だけ追加確認。管理者宛が届いても自動返信は別。入力者側の受信箱でも同じ確認を行います。

この実受信・実返信は、読者が自分の管理する環境で確認する完了条件です。当サイトの今回の隔離実験では、外部配送・実受信・実返信を確認していません。

隔離環境のCF7が返した送信完了表示。実メール受信の証拠ではない
実画面⑤:隔離実験の完了表示。PHP内部で送信処理を捕捉し成功値を返した結果です。実メール到達を示す画像ではありません。
いまの状態次に見る場所完了の扱い
入力エラー必須欄・形式・タグの対応修正して自分のテストで再確認
送信失敗・結果が出ない設定警告・処理の応答・既存の配送構成むやみに再送せず、症状を記録
完了表示でも未受信To・送信元・迷惑メール・メール提供者実受信までは確認保留
受信できるが返信先が違うReply-Toとメールタグ返信を使う運用なら修正・再確認
自動返信だけ未達メール(2)の有効状態・送信先・本文・配送管理者宛とは別に確認

エラーや未達の詳しい切り分けはContact Form 7の送信失敗・未達記事へ。SMTPプラグインを重ねて入れたり、WAFや迷惑送信対策を理由なく無効にしたりしないでください。

05 / 独自実証

新規設定で確認したこと、既存検証から分かること

当サイト独自の隔離WordPressで、合成フォームと合成入力だけを使いました。本番の問い合わせやメール配送を試したものではありません。

2026年10月21日、WordPress7.1.2・Contact Form 7 6.2.2・PHP8.5.11・SQLiteで、フォームとメール設定を実ブラウザーで保存。匿名フォームへ1回送信し、メール処理内でタグの展開を確認しました。

設定を保存

フォームの入力名と、To・From・Reply-To・本文を照合。

合成入力を送信

応答はHTTP200・mail_sent。メール処理の呼出しは1回。

対応を確認

管理者宛、合成入力者の返信先、テスト本文の展開を確認。実配送なし。

新規実証はpre_wp_mailで処理を捕捉し成功値を返しています。SMTP通信・メール認証・受信確認ではありません。外部HTTPとメールを停止し、ブラウザー内だけの架空ホスト対応でローカルのループバック先へ接続。DNS・hostsファイルは変更せず、常時noindex。終了後は複製DBを開始前へ戻しました。

既存の送信検証を再実行せず再利用

2026年10月17日の別の隔離フォームでは、実CF7→PHPMailer→ローカルSMTPの受理・拒否を検証済みです。入力不備・メール形式・同意不足・迷惑判定・SMTP拒否・SMTP受理・自動返信拒否の7条件を今回やり直していません。

その環境では、主メールをSMTPが受理してもメール(2)が拒否されると、全体の応答は mail_sent のままでした。SMTP受理も外部受信の証明ではありません。だから管理者宛と自動返信を別々に受信確認します。詳しい条件は送信失敗・未達記事で説明しています。

失敗したら、変更した場所だけ戻す

問い合わせ内容の保存は、別に方針を決める

CF7単体では送信メッセージを保存しません。記録用拡張などを使う場合は、保存先・閲覧権限・保存期間・削除手順を決めます。「届かなかった内容は管理画面に必ず残る」と考えないでください。保存プラグインの追加を一律必須にはしていません。公式のメッセージ保存の説明

迷惑送信対策や自動返信は、運用方針と利用する公式機能に合わせて検討します。設定・表示が正常でも、実受信が未確認なら公開前テストの完了とは扱いません。

次の問題へ進む

フォームを作るためだけにサーバー乗換えを勧めません。まず現在の環境で表示・設定・受信のどこが未確認かを分けます。

根拠と確認範囲

編集:ブログ始め方ガイド。以下の公式資料を2026年10月21日に確認。管理画面は合成環境の実画面で、記事内の設定例と読者が実施する受信確認を区別しています。

未検証:外部SMTP・実メール受信と返信、SPF/DKIM/DMARC、実サービスの迷惑送信対策、全テーマ・プラグイン、実機スマートフォン、第三者初心者テスト、本番の広告成果・確定報酬への効果。当サイトの個人情報の扱い/訂正の連絡