Contact Form7を使って問合せを設置していると、海外からの迷惑な問い合わせが届くことがります。
そんな時の対策法です。
下記の例の様にtextとtextareaに「*」を付けて、必須入力とします。
<label> 氏名
[text* your-name] </label><label> メールアドレス
[email* your-email] </label><label> 題名
[text* your-subject] </label><label> メッセージ本文 (任意)
[textarea* your-message] </label>[submit "送信"]
function.phpに下記を追加して、日本語が1文字も含まれていない問合せは受付けないようにします。
//問合せタイトルに日本語が含まれていない場合エラーとする
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 );//問合せ内容に日本語が含まれていない場合エラーとする
function wpcf7_validate_spam_message2( $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_message2', 10, 2 );
コンタクトフォーム7の迷惑メール対策で効果的なのが、Akismet(アキスメット)というプラグインを使うことです。
Akismetは、スパムコメント対策用のプラグインで、ワードプレスに標準装備されているので、有効化するだけで使えます。
Akismetを有効化するだけでも効果はありますが、このAkismetを、コンタクトフォーム7と組み合わせるさらに強力になります。
Akismetが有効化されている前提で、コンタクトフォーム7の「your-name」に akismet:author を追記します。
変更前:[text* your-name]
変更後:[text* your-name akismet:author]
問合せフォームにmailやURLの項目があれば、これらの項目にも同様にakismet:author を追記します。
変更前:[email* your-email]
変更後:[email* your-email akismet:author_email]
変更前:[text your-url]
変更後:[text your-url akismet:author_url]
設定が終われば、送信者の名前を「viagra-test-123」にして、送信テストしてしてください。
「メッセージの送信に失敗しました」と表示されればスパム対策は正常に完了しています。
reCAPTCHAとは、ロボットによる不正なフォーム送信をブロックしてくれるGoogleによって開発されたサービスです。
Pluginでは「invisible reCAPTCHA」というのがありますが、Contact Form7ではPluginを使わずに設定できます。
invisible reCAPTCHAで設定するのと、Contact Form7で設定するものとの違いは、invisible reCAPTCHAでは保護するページを細かく設定するのに対して、Contact Form7ではサイト全体を保護する事です。
上級者で無ければ、Contact Form7でサイト全体を保護しておくのが簡単で安心です。
Contact Form7でreCAPTCHAを設定するには、WordPressの管理画面から「お問い合わせ」→「インテグレーション」を選び、「reCAPTCHA」欄の「インテグレーションのセットアップ」をクリックします。
その後、reCAPTCHAのサイトキーとシークレットキーを、それぞれ入力し、「変更を保存」すればOKです。
日本語でも時々、宣伝のような問合せがくることがありますが、これをシステムで受付けないようにするのは簡単ではありません。
そこで、精神的な対策として問合せのフォームに「この問い合わせは売り込みや宣伝ではありません」というようなチェック項目を設定する程度です。
これでどの程度効果がるのかはわかりませんが、今の所、宣伝の類の問合せは届いていません。
問合せする人にとっては面倒ですが、海外からの迷惑な問合せをシャットアウトするには、クイズを追加するのが効果的です。
コンタクトフォーム7でクイズを追加するのは簡単で、クイズを追加したいbが処で【クイズ】ボタン句をクリックして、クイズの問題と回答を設定します。
クイズの問題としては、下記の例の様に漢字で回答する形式にすると日本語が入力できないと回答できないので、海外からの迷惑な問合せはシャットアウト出来ます。
パソコンとスマホで違う広告を表示させたい時の設定
Contact Form 7 の迷惑な問い合わせスパム対策
稼げるブログは設計次第!2021年は雑誌ブログがおすすめ
EC-CUBE4の画像保存場所
Wordoressの広告プラグイン5選!一番のおすすめはAdvanced Adsで決まり!
Contact Form 7 のメール設定とサンクスページの設定
Contact Form7 のカスタマイズ
【WordPress】カテゴリーページのURLから/category/を消す3つの方法
ヘッダーのロゴ画像を大きく表示するためのカスタマイズ
ワードプレスの引っ越しで画像が表示されない時の対処法
WordPressやプラグインのアップデート後に不具合が起きた時の対策
Cocoonのテーマにて日付表示を非表示にする方法
Invisible reCaptcha の設定
WordPress SEO by Yoastの設定方法