Contents
Contact Form 7 のインストールと初期設定
インストール方法
- WordPress管理画面 → プラグイン → 新規追加 をクリック
- 右上の検索ボックスに「Contact Form 7」と入力
- 該当プラグインが表示されたら「今すぐインストール」をクリック
- インストールが完了したら「有効化」をクリック
フォームの作成と設定
- 管理画面左メニューの「お問い合わせ」→「コンタクトフォーム」をクリック
- デフォルトのフォームがひとつ用意されているので、まずはそれをベースに編集する
- 「フォーム」「メール」「メッセージ」「追加設定」タブがあるので、内容をそれぞれ調整
下記のように、フォームの編集画面で短いコードを使用してフィールドを追加・削除します。
<label> お名前 (必須)
[text* your-name]
</label>
<label> メールアドレス (必須)
[email* your-email]
</label>
<label> 件名
[text your-subject]
</label>
<label> メッセージ本文
[textarea your-message]
</label>
[submit "送信"]
フォームを設置する
ショートコードをコピーし固定ページ・投稿ページに貼り付け
フォーム設定画面の上部、または一覧の「ショートコード」欄に表示されている下記のようなコードをコピーします。
エラー: コンタクトフォームが見つかりません。
フォーム項目のカスタマイズ
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はメール送信時に、下記のようなフィルターフックを用意しています。
wp_mail_from
- 送信元メールアドレス (From) を変更するためのフック
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'
];