外国からのスパムメールに閉口していませんか?
WordPressでメールフォーム作成する場合、多くの方がプラグインのコンタクトフォーム7を使われるかと思います。
機能的に申し分ないのですが、コンタクトフォーム7で構築したメールフォームを公開すると、必ずといっていいほど外国からのスパムメールが送られてきて、閉口させられます。
もしかすると、あなたも外国からのスパムメールに閉口しているのではないでしょうか?
コンタクトフォーム7で構築したメールフォームに関わらず、WEB上でメールフォームを構築する場合、スパム対策は必須です。
スパム対策はやり方が色々とあるのですが、今回は『本文が外国語だけのメールを送信できなくする』対策をご紹介していきます。
メールフォームの本文が外国語だけなら送信できなくする方法
方法は簡単です。
functions.php に下記のコードを追記してください。
add_filter('wpcf7_validate_textarea', 'wpcf7_validation_textarea_hiragana', 10, 2);
add_filter('wpcf7_validate_textarea*', 'wpcf7_validation_textarea_hiragana', 10, 2);
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 => 'エラー / この内容は送信できません。');
}
return $result;
}
上記コードは参考サイトから引用させていただきました。
上記のコードを追記しますと、メールフォーム内にある【textarea】の中身が英語だけだった場合、送信することができなくなります。
紹介した方法は、コンタクトフォーム7で構築されているメールフォームだけで有効となります。
まとめ
メールフォームの本文が外国語だけならを送信できなくする方法をご紹介しました。
本文がすべて外国語=スパムとした場合の方法となります。
海外の方がメールフォームを使用する可能性があるサイトでは使えない方法です。
上述のコードをコピペするだけで簡単に導入できますので、興味のある方は参考にしてください。
コメントを残す