コンタクトフォームエラーで「安全でないメール設定が十分な防御策なく使われている」とありました。原因は、Googleが無料で提供している認証ツール「reCAPTCHA」を導入していなかったためのようです。コンタクトフォーム7には「理想的には両方を組み合わせて使用した方がいい」ように書かれていましたので、削除していた「Akismet Anti-spam」を再度入れ「reCAPTCHA」を設定しました。ここでは、「Akismetと reCAPTCHA」の設定方法を解説します。
コンタクトフォームエラーの原因とは
ContactForm7の設定は、デフォルトのままで記入し、「題名、メッセージ本文」を送信用、返信用に付け加えただけの簡単なものでした。
エラーには下記のような原因があるらしいのですが該当しなかったです。
原因1:Contact Form 7の設定ミス
メールアドレスの入力ミス(誤字・脱字)はないか?
全角で入力している箇所はないか?
不要な空白が入っていないか? (先頭・途中・最後)
ドメイン部分の「.」が「,」になっていないか?
入力する欄を間違えていないか?
有効なメールアドレスかどうか? (そのメールアドレスから実際にメールを送ってみる)出典: www.bing.com
Spam設定はWordpress設定時に推奨されていましたので「Akismet Anti-spam: Spam Protection」のプラグインを入れていました。
Akismet Anti-spam: Spam Protectionについて調べ、ブログのコメント受けていないので必要ないと思い削除していました。実際は、これを削除したのがエラーの原因の一つだったのです。
Akismet Anti-spamは、WordPressのプラグインの一つで、ブログのコメント欄に送られてくるスパムメールを自動でフィルタリングしてくれる機能です。スパムメールは、ブログのコンテンツの質を下げたり、ウイルスに感染したりする危険性があります。Akismet Anti-spamを有効化するには、APIキーという認証コードが必要です。APIキーは、公式サイトで無料で取得できます1。Akismet Anti-spamは、個人サイトでは無料で使えますが、商用サイトでは有料版が必要になります2。
参考元:Microsoft Bingの新しいAI搭載のチャット モードより
Spam対策の方法
Akismet Anti-spam: Spam Protectionの設定
WordPressをインストールするとデフォルトで入っているプラグインですので、最初に有効化にし、設定➡Akismet Anti-spamをクリックして設定画面に入ります。
【設定方法】
- Akismet公式サイトになるので下記画面の「Get Personal」をクリック
- 右側画像の赤枠のスライダーは寄付金額です。無料版を使うなら、4500円➡0円になるまで左にスライドしてください。
- 全ての入力が完了したら「CONTINUE WITH PERSONAL SUBSCRIPTION」をクリック
- メールアドレスに届く6桁の数字を入力して認証し、「Continue」をクリックします
- これでダッシュボードへログインできるようになりましたので、プラグインにあるAkismet Anti-spamから設定をクリックします
- Akismetにログインしメールアドレス、パスワードを入力しログインします
- APIキーが表示されるのでコピー
- WordPressのAkismet設定画面に戻って、APIキーを入力
- 最後に、「APIキーを使って接続する」をクリック
以上
【AkismetとContact Form 7を連携させる】
連携させる方法は下記を参照してください。
AkismetとContact Form 7を連携してスパムメール対策を強化!
AkismetとContact Form 7を連携させることで、お問い合わせフォームに送られるスパム対策をすることができます。AkismetとContact Form 7のスパム対策の仕組み
お問い合わせフォームへのメッセージの入力
Contact Form 7が、入力されたメッセージをAkismetに渡す
Akismetが、スパム判定を行う
スパムだと判定された場合、Contact Form 7は、「メッセージの送信に失敗しました」というエラーメッセージを表示させ、メッセージは送信されない
AkismetとContact Form 7の連携手順Contact Form 7のインストールと有効化
AkismetプラグインのAPI有効化
Contact Form 7でAkismetをオプション設定
Akismetによるフィルタリングテスト
手順①と手順②については、ここでは説明を割愛します。Contact Form 7 のオプション設定
Contact Form 7でスパム対策をしたいフォームの「フォームタブ」内の「メール本文」に下記のコードを追記します。オプション 用途 記入例
akismet:author 送信者の名前 [text* your-name akismet:author]
akismet:author_email
送信者のメールアドレス [email* your-email akismet:author_email]
akismet:author_url 送信者のサイトURL [text your-url akismet:author_url]
textやemailのフィールドに送信者の名前やメアドを入力してもらう場合、フォームタグ内にakismet:authorやakismet:author_emailを挿入してあげるだけで大丈夫です。フィルタリングのテスト
テスト用の送信者情報を使って、スパムのフィルタリングがうまくできているかを確認します。テスト用送信者情報
名前 (akismet:author):viagra-test-123
メールアドレス (akismet:author_email):akismet-guaranteed-spam@example.com
お問い合わせフォームに上記を入力して「メッセージの送信に失敗しました。」と表示されたら、フィルタリングがうまく働いていることがわかります。
ほかに方法があるか調べてみました。Googleが無料で提供している認証ツールで「reCAPTCHA」というのがあり、お問い合わせフォーム7に「Akismetと reCAPTCHA を組み合わせて使用することを検討してください。」とありました。
このリスクからお問い合わせフォームを保護するには、スパム保護モジュールを有効にすることを強くお勧めします。最も可能性が高く、最も懸念される攻撃シナリオは、スパムボットによって送信される大量の電子メールであるため、自動化されたボット攻撃をブロックするように最適化されたreCAPTCHAの導入は必須です。理想的には、Akismetと reCAPTCHA を組み合わせて使用することを検討してください。
出典: contactform7.com
reCAPTCHAの設定
設定手順
- Googleが無料で提供している「Google reCAPTCHA」を開きます。
- 開きましたらreCAPTCHAのV3管理コンソール「Admin Console」をクリック
- 登録画面が出ますので画面に従って入力してください
送信をクリックしますと「サイトキー」と「シークレットキー」が表示されます。メモをしておきます。
管理画面のお問い合わせにあるインテグレーションをクリックします。クリックしますとインテグレーションセットアップ(下記)が出てきます。
メモ書きをしたサイトキー、シークレットキーをコピーし、ここに貼り付けます。入力しましたら変更保存します。
これでサイトにreCAPTCHA v3が設定されました。
【補足】
1)reCAPTCHA v3を設置しますと、右下にロゴが表示されます。このロゴを移動したい場合は下記をコピーし、サイトのカスタマイズをクリックして、追加CSSから設定できます。設定しますと右下のロゴが下から70pxずれます。ピクセルを変更することで位置が変わります。
/*reCAPTCHA v3 表示位置:/
.grecaptcha-badge {
bottom: 70px !important;
}
2)ロゴマークを消す方法、下記が参考になります。
Google reCAPTCHAのロゴマーク(バッジ)を消す方法
ロゴマークは、主にスマホ画面で見ている時に邪魔になります。表示を消す方法は次の3パターンあります。
functions.phpにコードを記述する方法
プラグインを使用する方法
Googleが発表している方法
functions.phpは、初心者向けではないので却下。プラグインを使用する方法は、プラグインを増やしたくないので却下。最も簡単で手堅いのが「Googleが発表している方法」です。
Googleの公式ページに説明文やコードが掲載されているんですが、内容をまとめるとGoogleが指示している文章を記載すればバッジを消してもいいですよ!と書いてあります。
ロゴマークを消す手順①
This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
これを「お問合せ」⇒「コンタクトフォーム」⇒「編集」でコンタクトフォームの「フォーム」タブが選択されていると思います。その最下部に上記のコードをコピペして「保存」をクリックします。ロゴマークを消す手順②
.grecaptcha-badge { visibility: hidden; }
「外観」⇒「カスタマイズ」⇒「追加CSS」に上記のコードをコピペして「公開」をクリックします。
コピペする場所は、先頭でも最下行でも、お好きなところにどうぞ♪
これで、あっという間にロゴが非表示になったと思います。
お問い合わせフォームに、Googleの文言が表示されているか?
reCAPTCHAのロゴが非常時になっているか?
この2点だけ確認したら作業は全て完了です。
出典: futa100.com
まとめ
Akismet Anti-spam、reCAPTCHA v3の設定について解説しました。スパムコメントを放置すると、SEOに影響を及ぼします。まだ、設定されていないようでしたら早めの対応が必要です。