Contact Form 7 отправленные данные определяет как SPAM

В борьбе за чистоту отправляемых с сайта писем (через обратные формы связи) вебмастера часто усердствуют, устанавливая дополнительные плагины на WordPress и дополняя "Чёрный список" (Настройки - Обсуждения) всевозможными spam-фразами. И в один момент наблюдается картина, когда популярный плагин Contact Form 7  дает сбой и отправленные данные определяет как спам (не отправляет письма, даже если ничего крамольного вы не пишите и заполняете все поля согласно всем правилам жанра). Но даже если отключить все плагины антиспама, проблема остается!

Что делать когда Contact Form 7 при отправке письма с сайта выдает "ошибка при отправке сообщения"? Эта фраза может звучать по разному, как "Ошибка при отправке сообщения. Пожалуйста, попробуйте позже или обратитесь к администратору сайта" или "Сообщение отправить не удалось" или вердикт конкретный - "Отправленные данные определены как спам".

К своему удивлению, не так давно я обнаружил, что на огромном числе моих сайтов и сайтов клиентов, CF7 исправно отправлял почту в десктопной версии сайта, а в мобильных браузерах все "Отправленные данные определены как спам" (с мобильных телефонов не удавалось отправить письмо ни под каким соусом). Примечательно, что отправку форм с мобильных устройств я никогда не тестировал и она, оказывается, исправно не работала все это время!

А у вас работает форма связи на Contact Form 7 в мобильной версии? Если нет, давайте искать причину!

Первым делом, необходимо удостоверится, что CF7 действительно ругается на SPAM. В вашем браузере откройте "Инструменты разработчика" (в Chrome - Меню - Дополнительные инструменты - Инструменты разработчика), найдите вкладку Network - найдите feedback, в котором откройте вкладку Preview (как на скрине):

CF. Статус писем SPAM

Здесь мы видим не двухзначный вердикт, почему наша форма отказалась отправить почту:

into: "#wpcf7-f1454-p71-o1"
message: "Ошибка при попытке отправить сообщение. Пожалуйста, повторите попытку позже."
status: "spam"

Поиск по коду плагина, находит такие строчки:

elseif ( $this->spam() ) { // Spam!
$this->status = 'spam';
$this->response = $contact_form->message( 'spam' );
}

Таким образом, при отправке сообщений, CF7 руководствуется встроенной функцией определения спама в WordPress, а именно "Черным списком"  (Настройки - Обсуждения). И порой руководствуется совсем непонятным образом: определяет SPAM, даже если слово не встречается в тексте, определяет SPAM только лишь в мобильных браузерах и т.д. и т.п.

Черный список используется в WP для глобального определения SPAM. Это пользовательский список слов. Если комментарий содержит какие-либо из этих слов в своём тексте, имени автора, URL, адресе e-mail или IP, то он будет помечен как спам. Каждое слово или IP задается с новой строки. Используется поиск по подстроке, то есть по слову “press” будет найдено “WordPress”.

Черный список в WordPress

Экспериментальным путем удалось установить, что пустой Черный список не мешал отправке почты с сервера, но это не было бы правильным решением, так как Черный список в WP - весьма эффективное средство против SPAMеров в комментариях.

Когда причина определена, остается научить Contact form 7 не определять SPAM по Черному списку! Для этого достаточно добавить в файл functions.php Вашей текущей темы следующую строчку кода:

add_filter('wpcf7_spam', '__return_false');

 

Оцените материал:
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (14 голоса, рейтинг: 5,00 из 5)
Загрузка...

Вячеслав - типичный интернетчикВячеслав Скоблей (ака files) - типичный интернетчик. Скитаюсь интернетом, пишу на PHP, увлекаюсь созданием веб-сайтов на Wordpress, решаю многочисленные проблемы, которые до появления интернета не существовали...

Специализируюсь на безопасности сайтов: защищаю сайты от атак и взломов, занимаюсь лечением вирусов на сайтах и профилактикой...

Наверняка у Вас есть вопросы, просьбы или пожелания. Не стесняйтесь спросить, я отвечаю всегда быстро...

7 комментарий

  1. Vsilent says:

    Это единственное решение которое помогло нам решить проблему. Спасибо огромное!

  2. Спасибо за совет с фильтром черного списка. Проблема в том, что и с пустым черным списком выскакивает ошибка блокировки спама. Это уж совсем печально.

  3. AS says:

    Спасибо за подсказку. Contact Form должен сразу писать вы отправляете спам, а не сообщение об ошибке, быстрее бы проблема была решена.

  4. says:

    Спасибо, долбался пару часов, оказалось все так просто!

  5. says:

    У меня возникла такая ситуация. Вставил строчку кода и всё заработало. Но я рано обрадовался. Возобновился спам через форму с email. Как защититься от спама со стороны интернета?

  6. says:

    странно, что я не в глобальном спам листе вордпресса

    1. Вячеслав Скоблей says:

      Родина должна знать своих героев в лицо

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте ранее:
Форма обратного звонка
«Перезвоните мне» с получением SMS информирования

Инструкция создания формы обратного звонка с сайта на базе Wordpress с использованием плагина CF7 с подключением SMS информирования и валидацией...

Закрыть