Contact Form 7からのスパムメール
-
こんにちは。
「Akismet によるスパムフィルタリング」という方法があります。
https://contactform7.com/ja/spam-filtering-with-akismet/一度ご確認いただけましたら幸いです。
- この返信は1年、 4ヶ月前にYukinobu Asakawaが編集しました。
- この返信は1年、 4ヶ月前にYukinobu Asakawaが編集しました。
ありがとうございます。
書かないでしまいましたがAkismetもやってみてはいたのですがダメで無効化している状態でした。
先ほどもう一度有効化してみましたがやはりメールが届きます。
一応フォームから届くメールアドレスを変更しても見ましたが同じでした。追記です。
一度Contact Form 7を削除してインストールしなおしても同じ状態です。
他のメールフォームを使っていようかと思ったのですが
どれがいいか決めかねております。ここはWordPressのフォーラムなので、CF7で他に対策がないか考えてみました。
以下のプラグインを追加し、特定のメールアドレスやドメインやキーワードで受信を簡単に拒否(ブロック)できるようです。
■Spam Protect for Contact Form 7
https://ja.wordpress.org/plugins/wp-contact-form-7-spam-blocker/
こちらもお確かめいただけますと幸いです。
他のメールフォームを使うというのももちろん選択肢の一つだと思います。サイト全体のデザインを損ねたくない場合には、iframeで固定ページや投稿ページに埋め込め可能なサービスをお探しになると良いかもしれません。ご参考になれば幸いです。
leafletwebさん、こんにちは。
reCAPTCHA v3 は Contact Form 7 単体でもデフォルトで実装されています。実装の機能を使ってみるのもひとつです。
ちなみに reCAPTCHA v3 を導入してもスパムは届きます。おそらくですが、フォームに自動入力しているような感じではなく、フォームの送信機能部分へ直接データを送り込んでいるのではないかと思われます(推測)。
ご自身で多少のカスタマイズが可能であれば送られてくるスパムの内容に対して一定の制限を追加することは可能です。例えば私の場合「会社名」欄に google として海外からのスパムが多く届いていたので会社名に google が使えないようにフィルターしました。
// contactform 7 追加フィルターを実装 add_filter( 'wpcf7_validate_text*', 'custom_name_validation_filter', 20, 2 ); function custom_name_validation_filter( $result, $tag ) { // お問い合わせフォームの会社名に関する処理 if ( 'your-company' == $tag->name ) { $your_company = isset( $_POST['your-company'] ) ? trim( $_POST['your-company'] ) : ''; // 会社名が「google」だったらエラーを返す if( $your_company == 'google' ) { $result->invalidate( $tag, "Please enter the company name correctly." ); } // スパム業者の名前を拒否 if( $your_company == 'Eric Jones' ) { $result->invalidate( $tag, "Please enter the company name correctly." ); } // 送信者にURLが含まれていたら拒否 $pattern = '/https?:\/{2}/'; if( preg_match( $pattern, $your_company ) ) { $result->invalidate( $tag, "Please enter the company name correctly." ); } } if( 'your-name' == $tag->name ) { $your_name = isset( $_POST['your-name'] ) ? trim( $_POST['your-name'] ) : ''; // 送信者にURLが含まれていたら拒否 $pattern = '/https?:\/{2}/'; if( preg_match( $pattern, $your_name ) ) { $result->invalidate( $tag, "Please enter the company name correctly." ); } } return $result; }
これはあくまでも例ですが、フォームの設定内容に合わせてフィルターを追加することで送信機能への直接送信だったとしても PHP 側で処理しているためはじくことができます。
プラグインで同様のことが実行できるのであれば Yukinobu Asakawa さんの案内してくれているプラグインでの実装が圧倒的に楽ですので、ご自身でできない実装は無理されないようお勧めいたします。
ご参考になれば。
Yukinobu Asakawa様
Spam Protect for Contact Form 7を試したところ今現在約60分経過して今のところスパムメールは届いていません。
shokun0803様
ありがとうございます。
とりあえず上記の通りYukinobu Asakawa様のSpam Protect for Contact Form 7にて条件入力する方法をやってみました。
まだ駄目な場合試してみたいと思います。ご確認ありがとうございます。
もしこの問題が解決された場合には、トピックを解決済みにしてクローズしていただけますと助かります。
他の方が同様の現象に遭遇した時に解決済みのトピックが参考になるためです。
- トピック「Contact Form 7からのスパムメール」には新たに返信することはできません。