WordPressサイトにContact Form 7(お問い合わせフォーム)を設置し、スパムメール対策の方法をご紹介します。
Contact Form 7プラグイン
以下がプラグイン提供元になります。
Contact Form 7
Contact Form 7のインストール
WordPress管理画面より「プラグイン」→「新規追加」→「検索キーワード」に「Contact Form 7」を入力すると、以下の赤枠「Contact Form 7」が表示されます。
「今すぐインストール」ボタンをクリック後、「有効化」ボタンをクリックします。
Contact Form 7(お問い合わせフォーム)の設定
WordPress管理画面の左メニュー「お問い合わせ」→「新規追加」画面に遷移すると「フォームの入力内容」「問い合わせメール送信先」「自動返信メール」「入力エラーメッセージ」等が設定できます。
「フォームの入力内容」「問い合わせメール送信先」「自動返信メール」「入力エラーメッセージ」等を設定後、赤枠箇所のコードをコピーし固定ページにペーストするとフォームが表示されます。
スパムメール対策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 );

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