SoyaBlog

これを見れば解決しそうや

HOME>WordPress>Contact Form 7 でスパムメール対策 「ひらがなを含まないとメールが送れない」
ブログ投稿日時:
ブログ更新日時:
Contact Form 7 でスパムメール対策 「ひらがなを含まないとメールが送れない」

Contact Form 7 でスパムメール対策 「ひらがなを含まないとメールが送れない」

  1. この記事の目的
  2. ひらがなを含まないとメールが送れないようにする
  3. 今回のまとめ
1.

この記事の目的

自社のお問い合わせフォームに海外から送られた英語の長文メールが届いたりしませんか?

それ、私も経験があります。

なのでこの記事では海外から英語の長文メールが送られてこないようにするにはどうしたら良いかを解説したいと思います。

※これは「Contact Form 7」の対策です。それ以外のプラグインには対応しておりません。

2.

ひらがなを含まないとメールが送れないようにする

海外から英語の長文メールが送られてこないようにするために「textareaでひらがなを含まないとメールが送れない」ように設定します。

日本人からのお問い合わせであればtextareaにひらがなを使わないケースはほとんどないと思います。

なので、この方法で海外からのスパムメールに対応していこうと思います。

functions.phpに下記コードをコピペしてみてください。

//メールフォームの textarea にひらがなが無ければ送信できない(contact form7)
function wpcf7_validation_textarea_hiragana($result, $tag)
{
 $name = $tag['name'];
 $value = (isset($_POST[$name])) ? (string) $_POST[$name] : '';
 
 if ($value !== '' && !preg_match('/[ぁ-ん]/u', $value)) {
  $result['valid'] = false;
  $result['reason'] = array($name => 'メッセージにひらがなを1文字以上入れてください。');
 }
 
 return $result;
}
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);

上記のコードをコピペできたらtextareaでひらがなを1文字も入れないでお問い合わせのボタンを押してみてください。

※カタカナや漢字だけでもOKです。

そうすると下記の画像のようにメッセージが表示されます。

エラーメッセージにひらがなを1文字以上入れてください

上記のメッセージが表示されたら設定は完了です。

エラーのメッセージをカスタマイズしたいときは下記の「メッセージにひらがなを1文字以上入れてください。」の部分を変更することでエラーメッセージを変更することができます。

//エラーメッセージを変更したいときは下記の「メッセージにひらがなを1文字以上入れてください。」の部分を変更してください。
$result['reason'] = array($name => 'メッセージにひらがなを1文字以上入れてください。');
3.

今回のまとめ

この記事では海外から英語の長文メールが送られてこないようにするにはどうしたら良いかについて解説しました。

スパムメールの対策をしておくとクライアントが困らないので、サイト制作の初期段階で対策しておくのが良いかもしれません。

最後までお読みいただきありがとうございます。