【WordPress】お問い合わせフォームへ来る、海外からの迷惑メール対策
2019年4月19日
去年の秋からでしょうか・・・お問い合わせフォームへ頻繁に、海外から迷惑メールが届くようになっていました。
放置していたら、どんどん増える始末。
このままではいけないと思い、本腰を入れて解決策を考え、実行に移しました。
今回は同じようなことで悩んでいる方がいるかもしれないと思い、参考までに健忘録として残しておこうと思います。
ワードプレスのプラグインに原因がある?
Contact form7の落とし穴
WordPressで簡単にお問い合わせフォームを作れるのが、[Contact form7]というプラグインなのですが
こちらのプラグインがどうも対策をしていないと、海外からたくさん迷惑メールが届く原因になるらしいのです。
対策その① フォームに確認用チェックボックスを入れる
コンタクトフォームの設定により、お問い合わせフォームの最後に[確認しました]というチェックボックスを追加いたします。
こうすることにより、自動で送られているようなスパム(迷惑)メールをシャットアウトすることが可能なようです。
まずは、コンタクトフォームの設定画面を開きます。
ダッシュボード>お問い合わせから、下記のコンタクトフォームの画面を開き
フォームタブより、[承認確認]のタグをクリックします。
同意条件の所にチェックボックスと一緒に記載される文言を入れます。
オプションのチェックは外して、タグを挿入ボタンをクリックします。
以下のように、確認用チェックボックスを表示するためのショートコードが挿入されていれば作業完了です。最後に、保存します。
対策その② メール本文に日本語が入っていない場合、コメントを除外する(functions.phpに構文を記入)
メールの本文に日本語が一文字も入っていないものを除外する方法になります。
海外から届くメールに有効な手段です。
まずは、外観>テーマの編集から、[functions.php]のファイルを開きます。
そこに下記の構文を追加します!
↓
function wpcf7_validate_spam_message( $result, $tag ) { $value = str_replace(array(PHP_EOL,’ ‘), ”, esc_attr($_POST[‘your-subject’])); if (!empty($value)) { if (preg_match(‘/^[!-~]+$/’, $value)) { $result[‘valid’] = false; $result[‘reason’] = array(‘your-subject’ => ‘日本語で入力してください’); } } return $result; } add_filter( ‘wpcf7_validate’, ‘wpcf7_validate_spam_message’, 10, 2 );
こちらで完了です!
【参考にさせて頂いたサイト】
https://kodocode.net/wordpress-plugin-contactform-secure/
いかがでしたでしょうか?
もし同じような事例にぶつかった際には、是非参考にしていただけたら嬉しいです。