コンテンツにスキップ

ntorelabo

Front End Developer

  • pickup
  • WordPress
  • PHP
    • PHP技術者認定試験
  • Docker
  • Next.js
  • AWS
  • Laravel
  • site map
  • search

ntorelabo

Front End Developer

  • search
  • pickup
  • WordPress
  • PHP
    • PHP技術者認定試験
  • Docker
  • Next.js
  • AWS
  • Laravel
  • site map

コンタクトフォーム7 の設定方法とカスタマイズ方法

  • ホームページ
  • コンタクトフォーム7 の設定方法とカスタマイズ方法
  • 6月, 金, 2022
  • WordPress
コンタクトフォーム7 の設定方法とカスタマイズ方法

Contents [hide]

  • 1 コンタクフォーム7とは
  • 2 Contact Form 7 のインストールと初期設定
    • 2.1 インストール方法
  • 3 フォームの作成・編集方法
  • 4 自動返信メールの設定
  • 5 設置する
    • 5.1 ショートコードをコピーし固定ページ・投稿ページに貼り付け
  • 6 フォーム項目のカスタマイズ
  • 7 エラーメッセージ・送信完了メッセージの編集
  • 8 スパム対策 (reCAPTCHA 連携)
  • 9 管理者通知メールのしくみ
  • 10 メールタブの各項目の詳細
    • 10.1 2-1. メールタブの基本構成
  • 11 wp_mail関数とは
    • 11.1 1-1. wp_mailはPHPMailerのラッパ関数
    • 11.2 1-2. WordPressが標準で行う処理
  • 12 2. デフォルト設定とカスタマイズの方法
    • 12.1 2-1. フィルターフック (wp_mail_from / wp_mail_from_name)
    • 12.2 2-2. 直接 wp_mail 呼び出し時のヘッダー指定

コンタクフォーム7とは

WordPressのプラグイン「Contact Form 7」は、初心者でも簡単に問い合わせページを作ることができます。またこのプラグインは問い合わせだけでなく、自動返信メールやサンクスページなどのカスタマイズも可能です。

Contact Form 7 のインストールと初期設定

https://contactform7.com

インストール方法

  1. WordPress管理画面 → プラグイン → 新規追加 をクリック
  2. 右上の検索ボックスに「Contact Form 7」と入力
  3. 該当プラグインが表示されたら「今すぐインストール」をクリック
  4. インストールが完了したら「有効化」をクリック

フォームの作成・編集方法

左側の【お問い合わせ】から【コンタクトフォーム】を選択します。

フォームを編集する部分には、あらかじめ「名前」「メールアドレス」「題名」「メッセージ本文」の項目が設けられています。

自動返信メールの設定

【メール】のタブをクリックして自動返信メールを設定します。
自動返信メールとは、フォームを使って問い合わせを行った人に対して自動で送られるメールです。

たとえば問い合わせをした方に対して「お問い合わせありがとうございます。」といった内容のメールを送ることができます。

【メール】のタブに移動し、スクロールすると【メール (2)】という項目があります。
そちらのチェックボックスにチェックを入れると自動返信メールを作成できるようになります。

次に、自動返信メールで送られるメッセージ内容を作成します。

初期設定のままでは問い合わせ内容がそのまま送り返されるだけですが、問い合わせに対するコメントや返信までにかかる日数などを記載することもできます。
また、自動返信により送られたメールであることを伝えられます。

設置する

ショートコードをコピーし固定ページ・投稿ページに貼り付け

フォーム設定画面の上部、または一覧の「ショートコード」欄に表示されている下記のようなコードをコピーします。

エラー: コンタクトフォームが見つかりません。
ユーザーがフォームに入力 Contact Form 7プラグイン WordPressから管理者へメール送信

フォーム項目のカスタマイズ

Contact Form 7 は多様なフィールドタイプを用意しています。主なものを表にまとめると、次のようになります。

フィールドタイプショートコード例必須指定説明
テキスト[text your-text][text*]単一行の文字入力
メールアドレス[email your-email][email*]メールアドレス入力(フォーマットチェック)
電話番号[tel your-tel][tel*]電話番号入力
テキストエリア[textarea your-message][textarea*]複数行の文字入力
ドロップダウン[select your-select "選択1" "選択2"][select*]プルダウン式の選択
ラジオボタン[radio your-radio "選択1" "選択2"][radio*]1つだけ選択する場合
チェックボックス[checkbox your-check "選択1" "選択2"][checkbox*]複数の選択肢から複数選ぶ場合
ファイルアップロード[file your-file][file*]ファイルを添付して送信
送信ボタン[submit "送信"]なしフォーム送信ボタン

上記のショートコードを、Contact Form 7 の「フォーム」タブで自由に組み合わせることで、柔軟なフォームを作成できます。

エラーメッセージ・送信完了メッセージの編集

Contact Form 7 では、送信時に表示される下記のようなメッセージをカスタマイズできます。

  • 送信完了メッセージ
  • 入力エラー時のメッセージ
  • 不正なメールアドレス入力時のエラー など

これらは「メッセージ」タブで編集できます。デフォルトでは英語でのメッセージも含まれていますが、日本語に変更しておくとユーザーにとってわかりやすい表示になります。

スパム対策 (reCAPTCHA 連携)

Contact Form 7 には「reCAPTCHA」を活用できる機能があり、ロボットやスパム投稿を防止することが可能です。

  • Google reCAPTCHA のサイトキー・シークレットキーを取得
  • WordPress 管理画面 → 「お問い合わせ」→「インテグレーション」タブでキーを設定

これにより、フォームに自動的に reCAPTCHA が組み込まれ、スパムメールを大幅に減らすことが期待できます。

管理者通知メールのしくみ

CF7では、ユーザーがフォームを送信したタイミングで、WordPressのメール送信機能 (wp_mail) を通じて指定のメールアドレス宛に通知が飛ぶ仕組みになっています。

  • 送信元 (From) : 送信者情報をメールの送信元として指定
  • 送信先 (To) : 管理者通知メールを受け取る宛先
  • 件名 (Subject) : 通知メールの件名
  • 本文 (Message Body) : フォームで送られたデータを反映

これらの項目は、CF7の「メール」タブで柔軟に編集できます。

メールタブの各項目の詳細

CF7のフォーム編集画面を開くと、上部に「フォーム」「メール」「メッセージ」「追加設定」などのタブがあります。管理者通知メールに関わる設定は主に「メール」タブで行います。

2-1. メールタブの基本構成

デフォルトの例 (メールタブ)

送信先 (To): [your-email] ← ここを管理者のアドレスに変える場合があります
件名 (Subject): お問い合わせ: [your-subject]
送信元 (From): [your-name] <[your-email]>
追加ヘッダー (Additional headers): Reply-To: [your-email]
メッセージ本文 (Message Body):
お名前: [your-name]
メールアドレス: [your-email]
件名: [your-subject]
メッセージ本文:
[your-message]

-- 
このメールはお問い合わせフォームから送信されました

送信先 (To)

  • デフォルトでは [your-email] が設定されている場合が多いですが、管理者側で受け取りたいメールアドレスを入力することがほとんどです。例えば、info@example.com など。
  • 必要に応じてカンマ区切りで複数設定も可能です。例:
info@example.com, support@example.com

件名 (Subject)

  • ユーザーが入力した件名をメール件名に反映する場合は、ショートコード [your-subject] を使用します。
  • 固定の文言を含めることもできます。例: 【お問い合わせ】[your-subject]

送信元 (From)

  • 通常、「誰からのメールか」 がわかるように [your-name] <[your-email]> とするケースが多いです。
  • この際、メールの送信元(「From:」欄)にユーザーのメールアドレスをそのまま設定してしまうと、メールサーバー側でスパム判定されやすいことがあります。
    • そのため、一部環境では wordpress@example.com など、自社ドメインのメールアドレスにしておき、本文中にユーザーのアドレスを含める形が望ましい場合もあります。

追加ヘッダー (Additional headers)

  • Reply-To: [your-email] のように設定しておけば、管理者が返信ボタンを押すだけで、自動的にユーザー宛に返信できます。
  • CC や BCC などを指定することも可能です。例:
Cc: cc@example.com
Bcc: bcc@example.com

メッセージ本文 (Message Body)

  • ユーザーの入力値を適切に表示するため、各フォームタグを本文に入れておきます。
  • よくある例としては以下のような内容です。
お名前: [your-name]
メールアドレス: [your-email]
電話番号: [your-tel]
ご要望: [your-request]

-- 
このメールはお問い合わせフォームから送信されました

ここで使用する [your-name] などのタグは、「フォーム」タブ で設定しているショートコードと同じ名前になるよう注意しましょう。そうしないと、正しく反映されません。

wp_mail関数とは

1-1. wp_mailはPHPMailerのラッパ関数

WordPressでは内部的にPHPMailerというライブラリが使用されています。wp_mail() は PHPMailer を呼び出すためのラッパ関数で、以下のような形で利用します。

wp_mail(
  $to,      // 送信先 (文字列 or 配列)
  $subject, // 件名
  $message, // 本文
  $headers, // ヘッダ情報 (任意)
  $attachments // 添付ファイル (任意)
);
  • $to: 送信先のメールアドレス(または複数アドレスを配列で指定)
  • $subject: メールの件名
  • $message: メールの本文(HTMLメールも可)
  • $headers: 追加のヘッダ情報(From, Cc, Bcc, Reply-Toなど)
  • $attachments: 添付ファイルのパスを指定(配列)

※ $headers や $attachments は不要であれば省略できます。

1-2. WordPressが標準で行う処理

  • From アドレスの指定がない場合、WordPressの設定に従って wordpress@サーバードメイン などのアドレスから送信されます。
  • ホスティングサーバーによっては、PHPのmail関数 が使われていたり、サーバー独自のセキュリティや設定が影響する場合があります。

2. デフォルト設定とカスタマイズの方法

2-1. フィルターフック (wp_mail_from / wp_mail_from_name)

WordPressはメール送信時に、下記のようなフィルターフックを用意しています。

  1. wp_mail_from
    • 送信元メールアドレス (From) を変更するためのフック
  2. wp_mail_from_name
    • 送信元名 (From Name) を変更するためのフック

たとえば、以下のようにテーマの functions.php などにコードを追加すると、送信元アドレスや送信元名を統一できます。

/**
 * wp_mail で送信されるメールの送信元アドレスを変更
 */
add_filter( 'wp_mail_from', function( $email ) {
    return 'no-reply@example.com'; // ここを任意のアドレスに
});

/**
 * wp_mail で送信されるメールの送信元名を変更
 */
add_filter( 'wp_mail_from_name', function( $name ) {
    return 'Example Site'; // ここを任意の送信者名に
});

2-2. 直接 wp_mail 呼び出し時のヘッダー指定

wp_mail() を直接呼ぶ際に、引数 $headers を指定する方法もあります。
たとえば、From と Reply-To を指定する例は以下のようになります。

$to = 'info@example.com';
$subject = 'テストメール';
$message = 'このメールはテスト送信です。';

// ヘッダ情報を配列で指定
$headers = [
    'From: Example Site <no-reply@example.com>',
    'Reply-To: support@example.com'
];

wp_mail( $to, $subject, $message, $headers );

$headers を文字列の配列として指定することで、好きなだけヘッダーを追加することが可能です。

  • Cc, Bcc などを含めることも可能です。
$headers = [
    'From: Example Site <no-reply@example.com>',
    'Cc: cc@example.com',
    'Bcc: bcc@example.com',
    'Reply-To: support@example.com'
];

最近の投稿
  • WordPressサイトのサブディレクトリ→サブドメイン移行手順 2025年7月6日
  • Laravelでリッチテキストエディタで使いやすい画像アップロード機能を実装(TinyMCE) 2025年6月22日
  • 【PHP】出力バッファリング制御 2025年5月22日
  • basic認証のパスワードを忘れた場合 2025年5月14日
  • PHP 8.0〜から実装で便利な機能(名前付き引数、match) 2025年5月11日
  • さくらインターネットからWHOIS登録メールアドレスの利用廃止のメールが来た 2025年5月9日
  • スムーズにスクロールする処理をjQueryで実装 2025年5月5日
  • Gemini for Google Workspace 活用術 2025年4月24日
  • Google Cloud の始め方 2025年4月20日
  • 【PHP】switch分の書き方、PHP 7.3 から PHP7.4の変更点 2025年4月19日
  • 【PHP】新しい方の指定方法「nullable」 2025年3月25日
  • 「PHPでJSONを扱う」json_encodeとjson_decode完全ガイド 2025年3月23日
  • 【WordPress自作テーマ開発】固定ページを自動作成する方法(下層ページ実装) 2025年3月18日
  • 【PHP】プロトコル / ラッパーについて(file:// php:// http:// https://) 2025年3月17日
  • 【PHP】stdClass を使用して(object) でキャスト 2025年3月16日
  • モダンなPHPコードで使用!無名関数の使い方 2025年3月15日
  • Cursor 便利な機能まとめ、Project Rules 2025年3月15日
  • PHP セッション名の変更方法と php.ini の記述方法まとめ 2025年3月12日
  • 【PHP】関数内でグローバル変数を使用するためには global キーワード 2025年3月10日
  • 【php8上級/準上級試験】模擬問題解説 問題30 strtotime() 2025年3月4日
About Us

Ready To Start Work With Us?

Felis consequat magnis est fames sagittis ultrices placerat sodales porttitor quisque.

Get a Quote
recent posts
  • WordPressサイトのサブディレクトリ→サブドメイン移行手順
  • Laravelでリッチテキストエディタで使いやすい画像アップロード機能を実装(TinyMCE)
  • 【PHP】出力バッファリング制御
  • basic認証のパスワードを忘れた場合
  • PHP 8.0〜から実装で便利な機能(名前付き引数、match)
  • さくらインターネットからWHOIS登録メールアドレスの利用廃止のメールが来た
  • スムーズにスクロールする処理をjQueryで実装
  • Gemini for Google Workspace 活用術
Opening Hours
Week Days 10:00 - 17:00
Saturday 10:00 - 15:00
Sunday Day Off
Contact us
popular posts
  • WordPressで画像を拡大表示するなら「Firelight Lightbox」(旧名:Easy Fancybox) 1.1k件のビュー
  • 【WordPress】カスタムフィールド作成の仕方「ACF」Advanced Custom Fieldsの使用法 739件のビュー
  • 【チートシート】Linuc Lv1-102 実務での使用例も解説 593件のビュー
  • My-Snow-Monkey使用例、子テーマによるカスタマイズ 511件のビュー
  • 【WordPressエラー】「Warning: Undefined variable $post in …」「Warning: Attempt to read property “ID” on null in …」 457件のビュー
  • Twitter、Facebookのタイムラインを埋め込む 415件のビュー
  • 【Next.js】ライブラリ使わないでカルーセルスライダー 300件のビュー
  • AWS認定ソリューションアーキテクト-アソシエイトレベル 248件のビュー
  • ローカル、グローバルIPアドレスの違いと確認手順 244件のビュー
  • WordPress自作、カスタマイズ 228件のビュー
Search
Copyright © 2025 ntorelabo | Powered by Desert Themes