2012/03/29 追記
ウルトラASPサイトをリニューアルしました。この記事ではウルトラ実況ライブのフォームを元に書いています。本筋に変わりはありませんが、キャプチャーだけ古いままです。ご了承ください。
Contact Form7を使用したウルトラASP、
ウルトラ実況ライブのフォームに、思い出したようにちょいちょいスパムがきます。
もともとContact Form7にはAkismetのフィルタリング機能があるので、それを使ってフィルタリングしてみます。
WordPressのフォーム用プラグイン、Contact Form7に関しては、検索すると山盛り出てくるのでそちらをご参照ください。個人的にはclassを付ける事が出来るのでデザイン的にもカスタマイズがしやすく、導入もとても簡単でとても重宝しているプラグインです。
さて、どんなスパムがくるかというと、
英語の羅列。まさしく迷惑。
フィルタリングのSTEP
- Akismetプラグインを有効化
- Contact Form 7 の編集からフォームの項目にAkismet用の記述をする
この2点です。Akismetプラグインを使用している方は、すぐに対応出来ますね。
まだ未使用の方は、WordPress.comのアカウントとAPI キーが必要です。プラグインを有効化して、導入手順に従ってください。
Contact Form 7 の編集
見ての通り、お問合せに関してはユーザビリティを優先して簡潔な項目に止めています。
Contact Form7側は以下のようになっています。
[response]
お名前※ | [text* your-name 50/ ] 例)田中 太郎 |
---|---|
メールアドレス※ | [email* your-email 50/ ] ※半角英数※ |
会社名/組織名 | [text company-name 50/] |
お問合せ内容※ | [textarea* your-message 41x15] |
[submit " 送信 "] |
(50/ は、inputのサイズを50にする設定、*は必須項目の設定)- [email* your-email 50/]
この2件を以下のように編集します。
- [email* your-email 50/ akismet:author_email]
- (URLの記入項目がある方はこちらも)
以上です。
どれか1つでもakismet:を入れておけばAkismetにスパム判定を送るようなのですが、正確な判定のためにはすべてにセットすることを推奨している、とのことです。
早速テストしてみます。以前来たスパムの内容を(ビクビクしながら)入力し、
送信!
送れないメッセージが表示されました。ばっちりですね!