Contact Form 7のフォームで入力されたメールアドレスがRFCに準拠しているかどうかをチェックする方法をご紹介いたします。
RFCというのはネットワークにおける技術仕様のようなもので、IETFという団体が発行している文書です。メールアドレスでも使って良い文字列などが定められています。
今回ご紹介するのは、RFCに準拠していないメールアドレスが入力された場合は、メールを送信できなくする方法になります。
Contact Form 7のフォームに入力されたメールアドレスがRFCに準拠しているかチェックする方法
サイトに適用しているテーマのfunctions.phpに以下を追加するだけです。
add_filter( 'wpcf7_validate_email', 'wpcf7_text_validation_filter_extend', 11, 2 ); add_filter( 'wpcf7_validate_email*', 'wpcf7_text_validation_filter_extend', 11, 2 ); function wpcf7_text_validation_filter_extend( $result, $tag ) { $type = $tag['type']; $name = $tag['name']; $_POST[$name] = trim( strtr((string) $_POST[$name], "\n", " " )); if ( 'email' == $type || 'email*' == $type ) { if (!filter_var($_POST[$name], FILTER_VALIDATE_EMAIL)) { $result->invalidate( $tag, 'このメールアドレスは送信できません。'); } } return $result; }
RFCに準拠していないメールアドレスが入力された場合は、「このメールアドレスは送信できません。」というエラーメッセージが表示されます。
あとがき
上記は、webOpixelさんで紹介されていた方法になります。
お問い合わせフォームにContact Form 7を使っている方は、ぜひ参考にしてください。