Contact Form 7で送信先を振り分けたいシーンとは?
Contact Form 7(CF7)は、WordPressで最も使われているお問い合わせフォームプラグインのひとつです。
基本的なフォーム機能はもちろん、少し工夫すれば「ユーザーの選択肢に応じて、送信先のメールアドレスを変える」といったカスタマイズも実現できます。
このような「送信先の振り分け」が必要になるのは、以下のようなケースです。
部署ごとにメールが届くようにしたい
たとえば企業サイトで、営業・サポート・採用といった複数の窓口がある場合、問い合わせ内容に応じてそれぞれの部署に直接メールが届くようにしたいことがあります。
このようなとき、フォームの選択項目(例:「お問い合わせ内容」)で「営業」「サポート」「採用」などを用意し、それに応じてメールの送信先を切り替えることで、問い合わせの振り分け作業を自動化できます。
お問い合わせ内容によって担当者を変えたい
特定の商品やサービスごとに担当者が異なる場合も、ユーザーが該当する項目を選ぶことで、担当者に直接届くように振り分けると効率的です。
手動での転送や確認作業が不要になるため、対応スピードの向上にもつながります。
複数フォームを作らず1つで完結させたい理由
送信先ごとに個別のフォームを作成することも可能ですが、フォームが増えるとメンテナンスの手間が増えます。
たとえば、フォーム項目を1つ追加したいだけでも、全てのフォームに反映させる必要があるため非常に非効率です。
送信先を動的に切り替えられるようにしておけば、1つのフォームを運用・管理すれば済むので、将来的な修正・更新も簡単になります。
このように、送信先の振り分け機能は業務効率を上げるための重要なカスタマイズです。
Contact Form 7にはその機能が標準で備わっており、追加プラグインなしで簡単に実装できます。
Contact Form 7で送信先を振り分けるには?
ontact Form 7で送信先を振り分けたい場合、「フォームの選択肢」と「送信先の設定」を連動させる必要があります。そのために活用するのが、「パイプ付きオプション(パイプ構文)」です。
これは、選択肢の表示内容と実際の値を分けて設定できる記法で、以下のように記述します。
[select your-recipient "営業|sales@example.com" "サポート|support@example.com" "採用|recruit@example.com"]
上記の例では、ユーザーには「営業」「サポート」「採用」といったラベルが表示されますが、選択された値としてはそれぞれに紐づいたメールアドレスが取得されます。
設定の流れ
1.フォームタブで選択項目を作成する

まずは「フォーム」タブで、送信先を切り替えるためのセレクトボックスやラジオボタンを設置します。
以下はセレクトボックスの例です。
<label>お問い合わせ内容
[select your-recipient "営業|sales@example.com" "サポート|support@example.com" "採用|recruit@example.com"]
</label>
ラジオボタンの場合は、
<label>お問い合わせの種類を選択してください</label><br>
[radio your-recipient use_label_element "営業|sales@example.com" "サポート|support@example.com" "採用|recruit@example.com"]
use_label_element
を使うことで、ラジオボタンのラベルがクリック可能になります。
チェックボックスの場合は、
<label>通知したい部署を選択してください(複数可)</label><br>
[checkbox your-recipient use_label_element "営業|sales@example.com" "サポート|support@example.com" "採用|recruit@example.com"]
チェックボックスでは、複数の送信先に同時送信が可能です。
たとえば、複数の担当者にCCのように同時送信したい場合に便利です。
2.メールタブで送信先に「your-recipient」を設定

次に「メール」タブにある「送信先(To)」の項目を、以下のように変更します。
[your-recipient]
これで、ユーザーが選んだ項目に対応するメールアドレス宛にメールが送られるようになります。
3.メール本文にも表示する

選択肢の「ラベル部分(営業など)」をメール本文にも表示したい場合は、通常の [your-recipient]
ではなく、[_raw_your-recipient]
を使うことで「メールアドレス」ではなく「表示ラベル」が出力されます。
お問い合わせ区分:[_raw_your-recipient]
4.確認とテスト送信
フォームを保存して公開後、テスト送信を行いましょう。
選んだ選択肢によって、メールが正しく振り分けられているかを確認してください。
このように、Contact Form 7ではパイプ構文を活用することで、フォーム一つで簡単に送信先を切り替えることが可能です。
応用テクニック
1.入力内容によって自動返信メールの本文を変える
自動返信メールの本文内で選択された内容ごとに文章を変えたい場合は、[[_raw_your-recipient]
]を活用して条件文と組み合わせることで可能です。
ただし、Contact Form 7単体では条件分岐が難しいため、以下のようなプラグインを活用するのがオススメです。
Flamingo:問い合わせデータの保存
Contact Form 7 – Conditional Fields:項目の表示・非表示などに条件分岐を使える
2.functions.phpで細かく制御したい場合
Contact Form 7 の wpcf7_before_send_mail
フックを使えば、PHPコードでより細かく送信先を制御できます。
以下は、フォームの特定項目の値に応じて送信先を変更する例です。
add_action('wpcf7_before_send_mail', 'custom_recipient_control');
function custom_recipient_control($cf7) {
$submission = WPCF7_Submission::get_instance();
if ($submission) {
$data = $submission->get_posted_data();
if ($data['your-recipient'] === '営業') {
$cf7->set_properties(['mail' => ['recipient' => 'sales@example.com']]);
}
}
}
注意点
1.「このタブパネルでエラーを検出しました」の表示について
メールタブで [your-recipient]
を送信先に指定すると、Contact Form 7 の検証システムが「静的なメールアドレスでない」と判断し、警告が出ることがあります。ただし、この警告は仕様上の問題であり、正常に動作することが多いです。
→ 警告が出ても送信テストをして問題がなければ、そのまま使用して問題ありません。
2.入力チェックが不十分だと誤送信に繋がる
ドロップダウンやラジオボタンにおいて、必須項目(*付き)に設定しておかないと、未選択で送信されてしまい、エラーになるケースがあります。
[select* your-recipient "営業|sales@example.com" "サポート|support@example.com"]
→ select*
や radio*
といった アスタリスク(*)の付与を忘れないようにしましょう。
3.管理者以外には振り分けすぎない
たとえば、社内の複数担当者へ振り分けたいからといって、10件以上のメールアドレスを仕込むと、迷惑メール扱いされたり、スパム判定される恐れがあります。
送信先はなるべく最小限に抑えるのが安全です。
4.Gmail系アドレスやフリーメールへの振り分けに注意
送信先が Gmail や Yahoo! メールなどのフリーメールアドレスの場合、サーバーやドメインとの整合性が取れていないと迷惑メールに分類される、または届かないケースがあります。
送信元アドレスや SPF、DKIMの設定もあわせて見直すとよいです。
まとめ
Contact Form 7で送信先を振り分ける機能は、カスタマー対応や部署別運用にとても便利です。
ただし、設定を誤ると送信ミスやトラブルにつながることもあるため、応用テクニックと注意点を踏まえて、安全・正確に運用するようにしましょう。
コメント