
Turnstileを入れているのにお問い合わせフォームから営業メールが届いてしまうお悩みはありませんか?
PEPのフォームにもcloudflareの定番である「Turrnstile」を導入しても事例資料の共有を求める投稿と、電話でサービスを説明したいという投稿が以前まで頻繁に届いておりました。
今回はturnstile以外にも営業メールをできるだけ防ぐ方法を解説していきます。
Contact Form 7で確認済みの営業アドレスだけを止める
Contact Form 7には、メール送信前に迷惑メールかどうかを判定する wpcf7_spam というフックがあります。
PEPではこの仕組みを使って、自社のお問い合わせフォームに判定を追加しました。以下は公開用に、指定したフォームでアドレスが完全一致した場合だけを止める例です。
<?php
/**
* Plugin Name: CF7 Sales Address Filter
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
add_filter(
'wpcf7_spam',
static function ( $spam, $submission = null ) {
if ( $spam || ! ( $submission instanceof WPCF7_Submission ) ) {
return $spam;
}
$target_form_id = 0; // 対象フォームの数字のIDに変更する。
$form = $submission->get_contact_form();
if ( $target_form_id < 1 || ! $form || (int) $form->id() !== $target_form_id ) {
return $spam;
}
$email = $submission->get_posted_data( 'your-email' );
$blocked_emails = array( 'sales@example.test' ); // 確認済みのアドレスを小文字で登録する。
if ( ! is_string( $email ) || ! in_array( strtolower( trim( $email ) ), $blocked_emails, true ) ) {
return $spam;
}
$submission->add_spam_log( array(
'agent' => 'cf7_sales_address_filter',
'reason' => '登録済みの営業アドレスに一致',
) );
return true;
},
30,
2
);
設定するのは次の3か所です。
- $target_form_id:フォームの編集画面のURLで
post=に続く数字を確認して入力します。ショートコードに表示される英数字のIDとは区別してください。0のままなら何も止めません。 your-email:フォームのメール欄の名前に合わせます。たとえば[email* your-email]なら変更は不要です。- $blocked_emails:例のアドレスを、営業と確認したアドレスに小文字で置き換えます。
コードは cf7-sales-address-filter.php として wp-content/mu-plugins/ 直下に置きます。
フォルダーがなければ作成した上で、ここに置いたPHPはWordPressが自動で読み込みます。 functions.php などですでに独自の判定を追加している場合は、既存のルールを確認してから使ってください。
個人的には「突然のご連絡失礼いたします」というような文言は、ほぼ100%が営業です。このような文言を弾くようなプログラムも作成してみても良いかもしれません。
迷惑メールのお困りの場合や、WordPress問題・PHP問題などお困りの場合はホームページの管理・引き継ぎからPEPにご相談ください。現在のフォームや通知の設定を確認し、どこから見直すかをご案内しますのでお気軽にどうぞ!