最近海外からの英語ばっかりのメールがWebサイトに大量に届くっす!
それはスパムメールだな。ソフトなどを使って大量に送りつけているんだぞ。
お客さんからのメールが埋もれて業務に支障が出てるっす!なんとかならないっすか?
よし!今回はWordPressでのスパムメールの対策を紹介しよう!
スパムメールの対策方法とは?
スパムメールというのは、言い換えれば「迷惑メール」とも呼ばれています。
WordPressでWebサイトを開設して、問い合わせ窓口にしているのに毎日英語ばっかりのメールで「お客様からの問い合わせ」が埋もれてしまい、機会損失なんて考えたくないですよね。
しかし最近(2023年6月)は、多くのレンタルサーバーが注意喚起するぐらいにスパムメールの被害が増えています。
被害を防ぐには、当然対策をしなければならないのですが、方法もたくさんあります。
まずは対策の一例を紹介。
- reCAPTCHAで対策
- プラグインで対策
- fuction.phpに追記で対策
様々な方法がありますが、今回は比較的簡単な方法を紹介していきます。
reCAPTCHAで対策
結論として、一番おすすめの方法は「reCAPTHA」で対策です。
reCAPTCHAはGoogleが提供しているスパム攻撃を防ぐためのサービスです。月間100万回までは無料と太っ腹です。基本的には無料分で支障はないと思います。
プラグインで対策
スパムメール(迷惑メール)を防ぐ手段として、WordPressのプラグインで対策するという方法があります。プラグイン側で施す形になるので、簡単に設定ができます。
Really Simple CAPTCHA
こちらのプラグインは問い合わせフォームの「送信ボタン」を押すには、「画像認証」の入力を追加するものになります。
※「画像認証」とは、指定の文字を入力することで認証させるシステムのことです。
botなどの機械的にスパムメールを送りつけている場合には、有効な手段となります。
Akismet
この「Akismet」はスパムメールだけではなく、スパムコメントにも有効なプラグインです。
しかしアフィリエイト目的のサイトや商用目的でのサイトの場合は、有料プランの加入が必要になります。
メールだけなく、コメントの対策を1つのプラグインで対応したい人向けですね。
広告などを貼らない個人ブログなら無料プランでOKだぞ!
Contact Form7の「スパムメール対策」
以下のコードを利用中のテーマの「function.php」に記述してください。
/*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 => 'エラー / この内容は送信できません。');
}
return $result;
}
//メールフォームの 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);
こちらのコードの内容は、お問い合わせ内容(textarea)の入力内容にひらがな含まれていないとエラー判定となり、送信できない仕組みとなっています。
Contact Form7でお問い合わせ内容部分には、<textarea></textarea>というタグが使用されています。このタグ内に「ひらがな」が含まれていない際に、エラーが出るという仕組みです。
基本的に海外からのスパムメールは全文外国語なので、「ひらがな」を判断基準にしているというわけです。
※function.phpを操作する際にはバックアップを必ず用意しましょう。