
ワードプレスで最も利用されているお問い合わせプラグイン「Contact Form7」。
人気すぎて「Contact Form7」だけを集中的に狙ったスパムメールがあって、当サイト「ふりーはむ」も例外なく狙われています。

ほぼ毎日くる…
無視するのも鬱陶しくなってきたので、対策してみると一切スパムメールがこなくなって超ストレスフリーです。
たった1分で簡単にできるので紹介します。
英語のスパムメールを対策する方法
function.phpに下記のコードを書くだけです。
//メールフォームの 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;
}

function.phpってどこ?
僕も最初どこにあるかわかりませんでした。
詳しく画像付きで「function.php」の場所と手順を説明します。
コードの入力手順
1.ワードプレス管理画面の左メニューにある「外観」にカーソルを合わせて表示される「テーマエディター」をクリックする。


クリックするところを赤枠で囲っています
2.画面右側にテーマファイルの欄が表示されるので「テーマのための関数(function.php)」をクリックする。

3.画像の「ココにコピペする」と書いてるとこに、コードを入力する。

//メールフォームの 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;
}
4.コードを入力後、下記の「ファイルを更新」をクリックする。

これでスパムメール対策は完了です!
対策後のチェック
自分のサイトのお問い合わせフォームから英語だけの文でメールを送ってみると

のように「エラー/この内容は送信できません。」と表示されればOKです。
注意事項
英語のスパムメール対策ですが、コード的には他の外国語も全て対策できます。
スパムメールは基本的には全て英語なので問題ありませんが、1文字でも日本語が入ってると送信可能になります。

対策してからスパムメールがなくなって快適になったよ!
まとめ
以上が、「【Contact Form7】英語のお問い合わせスパムメール対策(ワードプレス)」でした。
function.phpにコードを書くだけで、スパムメールがこなくなるので困っている人は是非やってみてください。
他のプラグインを入れて画像認証や文字入力で対策することもできますが、ユーザー的には面倒です。
後はプラグインを増やすとサイトが重くなったりするので僕はコード入力にしています。

では、はむりすでした~
コメント