長いこと WordPress ブログを運営していると必ずといってよいほど発生する「お問い合わせフォームからの外国語スパムメール」。
海外からバシバシ送られてくるんですよね…。
対策として画像認証やテキスト認証の導入も検討しましたが、ユーザビリティ的にちょっとよろしくないと思うんです。だって送信する側の面倒が増えるでしょ。
なんとか日本語メールだけを受信する方法はないものか…。
そういうの、あるんですっ!
今回は「お問い合わせフォームから送信される英語メールだけをピンポイントでシャットアウトする方法」を紹介します。
- 本記事の方法を導入した場合、英語の他、中国語、ロシア語、アラビア語など日本語以外の言語はすべてシャットアウトすることができます。
目次
Contact Form 7 お問い合わせフォーム「海外スパム対策」
以下のコードをコピーしてテーマの fanction.php に貼り付けてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //メールフォームの textarea にひらがなが無ければ送信できない(contact form7) 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)が全文が日本語以外だった場合はエラーになり送信できないようになります。
これがどういう機能なのかを簡単に解説すると・・・
お問い合わせ本文は <textarea></textarea> というタグが使われています。その textarea タグの内容に「ひらがな」が無い場合は、エラーを吐き出して、送信することができないようにしてくれる…という PHP コードです。
ひらがなの有無で送信できるかどうかを判別するという仕組みなのです。
したがって、海外スパムは全文が外国語ですから、どう頑張ってもエラーになり送信することができないわけなんです(日本語以外の外国語はすべてシャットアウトできます)。
「エラー / この内容は送信できません。」の部分だけ任意の文言に変更できます。
コードを貼り付ける際には、できるだけ「子テーマ」の function.php に貼り付けるようにしてください。親テーマはいじらないのが基本です(子テーマが無い場合はしかたありません)。
実際に WordPress のお問い合わせフォームでの使用例
お問い合わせ本文に全文英語を入れて送信ボタンを押してみると、上の画像のように自動的にエラーを吐き出してくれます。何度送信ボタンを押しても同じです。
当ブログのお問い合わせでもこの機能を導入しているので、実際の動作を確かめてみたい方は「こちらのお問い合わせ」から本文エリアに英文をいれて試してみてください。
例画像では「Japanese Only」とわかりやすくしていますが、バカ正直に「日本語以外はつかえないよ」という記載にすると、小賢しいスパマーは日本語を混ぜてきやがりますので、注意書きはただ送信エラーの旨だけを表記する方が良いと思います。
設定後は忘れずに動作チェックを行ってくださいね
キタムラ
function.php に海外スパム対策を施したあとは、一度セルフでお問い合わせフォームから送信してみて、ちゃんと動作するかを忘れずにチェックしてくださいね!
こちらの迷惑営業の対策もあわせて設定しておくと鉄壁です
WordPress に標準搭載されている機能をうまくつかうことで、「Contact Form7 に特定のキーワードが含まれていたら、送信ボタン押した時、警告文を出して送れなくする」ことができます。
外国語の迷惑メールを駆除したついでに、迷惑営業メールも駆除してみませんか?
詳しい手順は以下の別記事にて紹介していますので、ぜひお試しください。
本記事がお役に立ったら SNS などでシェアお願いします
WordPress のお問い合わせから送られてくる全文英語のスパムメールにお悩みの方はぜひお試しください。
本記事の方法なら画像認証などでユーザビリティを下げなくても、英語スパムメールは完全シャットアウトできますから効果てきめんですよっ!
本記事がお役に立ったら SNS などでシェアしてくださると嬉しいです。
というわけで、今回は「Contact Form 7 を用いたお問い合わせフォームから送信される英語メールだけをピンポイントでシャットアウトする方法」を紹介しました。