ブログのお問い合わせフォーム経由で海外から迷惑メールが届いて困ってます。
何か防ぐ方法ってありますか?
お問い合わせフォームの定番プラグイン、Contact Form 7(コンタクトフォーム7)。
サイトに「お問い合わせ」の設置は必須ですが、海外からメールが届いてうっとおしいと感じている人もいるかと思います。
ここでは、
この方法はプラグインを使わない代わりにWordPressの「functions.php」というファイルを編集しますが、コピペで完了するので初心者でもOKです。
参考 Contact Form 7の迷惑スパムメールをプラグインなしで撃退する | 神戸Tシャツ製作所
※Cocoonテーマを例にしますが、他テーマでも「functions.php」を編集すれば同じです。(SWELLテーマでも確認済み)
Contact Form 7:日本語が無いメールをお問い合わせフォームで拒否する functions.php コード
参考 【初心者向け】おすすめのWordPressバックアップ方法とは?簡単なバックアップの設定方法を解説 | 初心者のためのブログ始め方講座
(1)WordPressダッシュボードにログインし左メニューの「外観」>「テーマファイルエディター」を選択します。
(2)「編集するテーマを選択」を「Cocoon Child」にして「Theme Functions(functions.php)」を選択します。
↓
(3)テーマ編集のタイトルが「Cocoon Child: Theme Functions (functions.php)」になったことを確認し、編集エリアに下記のコードをコピペして下さい。
※すでに他のコードがあっても、その下に貼り付ければOKです。
// Contact Form 7 スパムメール対策(本文に日本語が含まれていない場合はエラーを返す) function wpcf7_validate_spam_message( $result, $tag ) { $value = str_replace(array(PHP_EOL,' '), '', esc_attr($_POST['your-message'])); if (!empty($value)) { if (preg_match('/^[!-~]+$/', $value)) { $result['valid'] = false; $result['reason'] = array('your-message' => 'エラー:この内容は送信できません'); } } return $result; } add_filter( 'wpcf7_validate', 'wpcf7_validate_spam_message', 10, 2 );
↓
↓
(4)コードを貼り付けできたら「ファイルを更新」で変更を保存します。
コード編集の作業はこれで完了です。functions.php の画面は閉じて下さい。
他のプラグインやCSSコードとの相性もあるので、もしデザイン崩れなどがある場合今回のコードは削除し採用を見送ってください。
日本語なしを拒否するか「お問い合わせフォーム」で確認する
functions.php に追加した対策コードが、ちゃんと機能するか必ず自分でテストしましょう。
- メッセージ本文が英語だけ(スパム)のお問い合わせ
- メッセージ本文に日本語が含まれている(通常の)お問い合わせ
それぞれ実施し、❶は拒否され、❷は送信できるか確認します。
メッセージ本文に日本語が一文字でもあれば送信されます。
ちなみに「氏名」や「題名」は判定の対象外なので英語でも日本語でも関係ありません。
あくまで「メッセージ本文」の内容を判定しています。
これで海外からの迷惑なスパムメールは、お問い合わせフォームでほとんど防げるようになると思います。
以上です、最後までお読みいただきありがとうございました。
コメント