簡単な設定だけですぐにフォームが設置できるものの、何も対策をせずに放置していてスパムが来るようになり頭を抱えている人もいるのではないかと思います。今大丈夫でも、ある日突然スパムが来るようになる可能性が高いので今のうちから対策しておきましょう。ここで紹介する対策は、メールの本文に日本語が含まれていない場合はエラーを返しメール送信できないようにするというものです。7」の「クイズ」機能を使った方法を試してください。クイズ機能を使う日本語/全角の割合をチェック(厳しめ)日本語が含まれていない場合にエラーを返す方法については、いくつかのサイトで紹介されていますが、それらは日本語が1文字以上入ってさえいれば送信できてしまうものが多いため、ここでは日本語/全角文字が全体の文字数に対して特定の割合以上含まれているかどうかチェックするという少し厳しめのバリデーションを紹介します。'your-message';の部分は、利用しているフォームのチェックしたいフィールド名に変更してください。日本語が指定の割合以上含まれているかチェック下記の例では、正規表現で指定したぁ-んァ-ヶー一-龠0-9、。マッチする文字が全体の50%未満の場合はエラーを返すようにしています。30;(30%)などに下げておいても良いでしょう。preg_match_all("/[ぁ-んァ-ヶー一-龠0-9、。);全角文字が特定の割合以上含まれているかチェックこれは日本語かどうかではなく、全角かどうかのチェックです。mb_strlenで全角の文字数を取得することができます。関数は韓国語や中国語も全角として扱うということ、また一部の日本語記号を半角として扱う特徴があります。厳密に日本語だけに限定したい場合は上のコードを使いましょう。);日本語/全角が含まれるかチェック(緩め)一応参考までに、他サイトで紹介されているような方法も紹介しておきます。これは文字数の割合はチェックしていないため、たとえ1文字だけでもバリデーションを通過する文字列が含まれれば送信できてしまいます。通常はこれで十分だと思います。ひらがなが含まれているかチェック正規表現で、ひらがなが1文字以上含まれているかどうかチェックし、なければエラーを返します。);半角英数字のみかどうかチェック半角英数字のみだった場合はエラーを返します。半角英数字以外の文字列が1文字でも含まれていれば許可されるため、この中では一番緩いバリデーションとなります。7」の「クイズ」機能を使用することで、スパム対策を実現できます。特別なコードを追加する必要ないため、比較的簡単に導入できるものの、実は今回紹介した対策法の中では一番強力なスパム対策になり得ます。フォーム追加の画面で「クイズ」をクリックすると、クイズ設定画面が表示されますので、質問と答えを半角パイプ(|)で分けて登録します(例:質問|答え)。改行して複数登録しておくと、その内の1つが毎回ランダムで表示されます。英語のメールを受け取る可能性がある場合など、送信者の使用言語に関係なくスパム対策したい場合は、下記などのクイズを設定すると良いでしょう。10+5=|153x3=|9100-50=|50今回紹介した方法以外にもっと画期的な方法などあれば是非コメント欄で教えてください。最新記事hidepooh日本では主にUNIXサーバーの構築、運用などに携わり、2006年に仕事を辞めてカナダに来てそのまま永住。モーショングラフィックなど、新しい分野のスキルアップに励んでいます。僕が過去の経験の中で学んだことを、特定の分野に限定せず公開していくことを目的としています。これが意味不明か・・・。me]を見てください。PMはじめまして!スパム対策として非常に有益な情報を知ることができ大変感謝しております。//チェックしたいフォームフィールド名ここのフィールド名を複数対応にしたい場合(your-messageとyour-addressなど)のコード表記はどのようにすればよいのでしょうか?何卒ご教授いただけますでしょうか。PMコメントありがとうございます。複数の各フィールドをどのような条件でチェックしたいのかによっても処理は変わってくると思いますが、もし全く同じ条件でただ複数フィールドに対応するということであれば、下記のようにループ処理を追加するのがシンプルで分かりやすいのではないかと思います。PM報告遅れましたがようやくお客さんに確認してもらえました!教えていただいたコードを参考に『日本語が指定の割合以上含まれているかチェック』を対応させてみたのですが結果ちゃんと機能してくれたようです。海外スパムがゼロになり大変満足していただけました!とても丁寧なお返事をいただけたおかげです。今後ともよろしくお願いいたします。PMコメントありがとうございます。記事の中で、どのファイルに追加するか書いてなかったですね・・。内に追加してください。PMありがとうございました。