WordPress

WordPressプラグインContact Form 7(お問い合わせフォーム)の設置とスパムメール対策

WordPressサイトにContact Form 7(お問い合わせフォーム)を設置し、スパムメール対策の方法をご紹介します。

Contact Form 7プラグイン

以下がプラグイン提供元になります。
Contact Form 7

Contact Form 7のインストール

WordPress管理画面より「プラグイン」→「新規追加」→「検索キーワード」に「Contact Form 7」を入力すると、以下の赤枠「Contact Form 7」が表示されます。

Contact Form 7のインストールイメージ

「今すぐインストール」をクリックして、「有効化」します。

Contact Form 7(お問い合わせフォーム)の設置

WordPress管理画面の左メニュー「お問い合わせ」→「新規追加」画面に遷移すると「フォームの入力内容」「問い合わせメール送信先」「自動返信メール」「入力エラーメッセージ」等が設定できます。

Contact Form 7(お問い合わせフォーム)の設置イメージ
「フォームの入力内容」「問い合わせメール送信先」「自動返信メール」「入力エラーメッセージ」等を設定後、赤枠箇所のコードをコピーし固定ページにペーストするとフォームが表示されます。

スパムメール対策1:フォーム項目に「承諾確認」チェックを追加

フォーム項目に「承諾確認」チェックを追加することで自動でお問い合わせを行う、スパムメール対策になります。
手順は以下の通りです。

フォーム項目に「承諾確認」チェックを追加イメージ
  • ①フォームタブから「承諾確認」をクリック
  • ②同意内容のテキストを入力
  • ③オプションの「チェックボックス」を任意選択にするのチェックを外す
  • ④「タブを挿入」をクリック
  • ⑤フォーム項目に「承諾確認」チェックとテキストが追加されます

スパムメール対策2:フォーム項目の「メッセージ本文」に日本語文字を入力必須にする

海外からのスパムメールでは入力内容が英数字のみが多いのでフォームの入力項目の「メッセージ本文」が英数字のみだった場合入力エラーにします。
functions.phpに以下を追記します。

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 );

フォーム項目の「メッセージ本文」に日本語文字を入力必須にするイメージ

フォーム項目の「メッセージ本文」が英数字のみだった場合、エラーメッセージが表示され英文のみではお問い合わせ出来なくなりスパムメール対策になります。

 
※流用される場合は自己責任でお願いします。