WordPressでお問い合わせに届く迷惑営業メールの対策をする方法
困ったことにこのところ弊社のお客様より、
「問い合わせフォームに届く定型文の営業メールをなんとかしてほしい」
「毎日同じ業者から営業メールが届いて業務に支障が出ている」
といったご相談が数多く寄せられています。
フォーム営業代行というサービスも出てきているので、お問い合わせフォームから届く営業メールは増える一方です。
特に最近ではメールフォームの問い合わせをリード情報としてCRMなどに自動連携しているケースも多く、届いたメールを削除するだけでは済まない場合もあります。
そうなるとこれは真剣に対策しなければならない問題ですね。
対応方法を検索すると...
「問い合わせフォーム 営業メール 対策」などのキーワードで検索すると他社さんでも同様の課題を抱えていることがわかりますが、対応方法として多いのは、
- お問い合わせページに「営業お断り」の記載をする
- サイトポリシーなどに禁止事項として追記する
- NGワードを設定する
などのアイデアでした。
どれも一定の効果はありそうですが、お問い合わせフォームは大切な見込みのお客様への窓口でもあるので、
「営業メールお断り」
「営業・勧誘目的としたお問い合わせはご遠慮ください」
などの強い口調の文面を掲載するのは、本来のお客様に対しても悪印象を与えないか気になるところです。
またNGワードの設定については実装は難しくないものの、どの単語を禁止ワードに設定するかの線引きが難しく、営業メールに高確率で含まれており通常のお問い合わせに含まれていないワードを精査するのは難易度が高い対策と言えます。
「フォームを公開している以上、営業メールも避けることができません」
と言ってしまえばそれまでなのですが、フォームからお問い合わせをしてくださるお客様の印象を損ねず、業務に支障を出さないよう迷惑な営業メールを処理する方法を弊社なりに考えてみましたので、本日はそんなTipsをご紹介します。
前提条件
MW WP Formを使用している
WordPressのフォーム作成プラグインとしては、もはや知らない人はいないと思われるMW WP Form。
確認画面付きのお問い合わせフォームを作成したいという日本人のニーズに見事に対応したプラグインで、弊社でもお客様のWebサイトにかなりの確率で導入させていただいております。
今回はこちらのプラグインを利用したフォームでの対策例をご紹介させていただきます。
営業メールはドメイン単位で拒否する
届いたメールの内容をAIで判別して〜のような高尚な内容ではなく、単純に何度も営業メールを送信してくる対象ドメインを抽出して、送信処理(またはデータ連携)を停止する、という単純な方法です。
それでは具体的な手順を見ていきましょう。
拒否するドメインのリストを作成
MW WP Formの特徴として「問い合わせデータをCSV出力する」という機能があります。
過去の問い合わせデータをCSV出力してドメインでソートすると、同一ドメインでの送信の多い順にリストアップすることができます。
リストアップが完了したら、WordPressのオプションページなどを利用して拒否するドメインのリストを設定できるフィールドを作成し、こちらにドメインを登録していきます。
MW WP Formの設定
次にMW WP Form側の設定ですが、これは実行したい処理によって設定内容が異なります。
今回はシンプルに、「送信者のメールアドレスに、NGリスト登録済みのドメインが含まれていたら、管理者宛のメール送信を停止する」という処理を例に紹介します。
MW WP Formのフィルターフックは、開発者であるモンキーレンチさんの公式マニュアルサイトに詳しく書かれています。
/**
* my_mail
* @param object $Mail
* @param array $values
* @param MW_WP_Form_Data $Data
*/
function mwform_auto_mail_not_send_mail_for_spam( $Mail, $values, $Data )
{
do
{
// オプションページのカスタムフィールドからNGドメインのリストを配列にセット
$ng_list = array();
$ng_domain = get_field( 'form_ng_domain', 'Options' );
if ( $ng_domain )
{
foreach( $ng_domain as $ng )
{
$ng_list[] = $ng['domain'];
}
}
// フォームから送信されたメールアドレスのドメインを取得
$email = $Data->get('email');
$filtered = filter_var( $email, FILTER_VALIDATE_EMAIL);
if ( empty($filtered ) ) {
return null;
}
if (!preg_match('/\A(?.+)@(?[^@]+)\z/u', $filtered, $matches)) {
return null;
}
// 取得したドメインがリストに存在するかどうかをチェック
$spam = in_array( $matches['domain'], $ng_list );
// 該当する場合にはメール送信を停止
if ( $spam )
{
$Mail->to = FALSE;
}
}
while ( FALSE );
return $Mail;
}
add_filter( 'mwform_admin_mail_mw-wp-form-XXXX' , 'mwform_auto_mail_not_send_mail_for_spam', 10, 3 );
このフィルターフックの本来の使い道は、ユーザーの入力値によって管理者宛のメールの宛先を変更したり、メールの送信内容を変更するためのものですが、
$Mail->to = FALSE;
とすることで、送信先の設定を空にしてメールの送信自体を停止することができます。
実務での実装アイデア
上記の例は「管理者宛のメール送信を停止」ですが、MW WP Formには様々なフックが用意されていますので、この他にもアイデア次第でいろいろな実装が可能です。
例えば...
- 自動返信メールの文面を変更して、やんわりと営業メール送信のために問い合わせフォームを利用することをお断りする。
- 完了ページの表示メッセージを通常とは違うものに変更する。
- 完了ページを通常とは異なるURLにリダイレクトする。
- 指定ドメインのメールアドレスは入力エラーにする。
- CRMへのデータ連携を行わないようにする。
など、フォームや外部連携の利用状況に応じて自由にカスタマイズが可能です。
(参考)弊社の対応方法
ちなみに弊社では、独自のバリデーションルールを追加して、
入力時点でバリデーションエラーとなるように設定しております。
フォームのお悩みがあればご相談ください
いかがだったでしょうか?
弊社のお問い合わせフォームは年間500件ほどのお問い合わせをいただきますが、実際営業目的のメールが8割以上という感じです。
弊社よりも日々お問い合わせの多い企業様であれば、届いたメールを一読し、処理をするのも毎日のことになれば地味に業務効率を悪化させる要因になりますよね。
今回ご紹介させていただいた方法以外にも様々なカスタマイズに対応可能ですので、WordPressに設置したフォームでお困りのことがありましたら、是非お気軽にご相談ください。