Можно ли запретить отправку формы с определенных email?

Добрый день.

На сайте используется связка formit + ajaxform для отправки сообщений пользователям.

Сейчас одну из форм активно используют спамеры, которые действительно делают всё вручную, тем самым проходя и рекапчу и другие валидации.
Вопрос, можно ли как-то заблокировать отправку писем с этими адресами?
Копал в сторону валидации полей формы, но что-то не нашел решения.

Если кто-то сталкивался с подобной задачей и может поделиться решением — буду благодарен!
Андрей
11 октября 2020, 12:45
modx.pro
518
0

Комментарии: 8

Павел Романов
11 октября 2020, 15:29
0
Сделайте сниппет:
<?php
// перечислите "плохие" email
$email = array(
    'email1@domain.ru',
    'email2@domain.ru',
    'email3@domain.ru',
    'email4@domain.ru',
    // ....
);
if(in_array($hook->getValue('email'), $email)) return false; // если в поле email есть один из перечисленных адресов, то прерываем обработку
return true;

Используйте его перед email в параметре &hooks:
[[!AjaxForm?
&hooks=`snippet,email`
...
]]
    Андрей
    12 октября 2020, 09:06
    0
    большое спасибо! Протестирую сегодня )
      Павел Романов
      12 октября 2020, 15:10
      0
      Если нужно выводить сообщение об успешной отправке, сделайте так:
      <?php
      // перечислите "плохие" email
      $email = array(
          'email1@domain.ru',
          'email2@domain.ru',
          'email3@domain.ru',
          'email4@domain.ru',
          // ....
      );
      if(in_array($hook->getValue('email'), $email)){
          echo $AjaxForm->success('Спасибо, Ваше сообщение отправлено.'); // выводим сообщение
          die();
      }
      return true;
    Александр Мельник
    11 октября 2020, 17:29
    +1
    я очень сомневаюсь, что они делают это вручную. Сейчас программы для спама это очень быстро развивающиеся продукты, часто с использованием ИИ. Для них все эти каптчи и проверки — раз плюнуть.
    Но тем более, если делают вручную, то они увидят что больше не отправляется если они указывают этот email и они просто напишут любой другой.
    Если уж пойдете по этому пути, то вы хотя бы не показывайте уведомление, что письмо не отправлено, пусть они думают что все проходит хорошо, но при этом письма отправляться не будут.
      Андрей
      12 октября 2020, 09:07
      0
      Да, уведомление о неудачной отправке показывать им не планировал ))
        Александр Мельник
        12 октября 2020, 09:34
        0
        если вернуть false в хуке, который проверяет почту, то уведомление будет показано в любом случае.
      Роман
      12 октября 2020, 18:31
      0
      Лучше наверно по IP блокировать, хотя тоже не всегда эффективно. В ручную точно они не делают, это слишком дорого. Используют обычные сервера типа антикапчи, а там индусы и школота их вводит за копейки. Попробуйте со стоп-словами поработать, помогает в большинстве случаев.
        Denis
        23 октября 2020, 01:26
        0
        А reCaptcha от Google используется в формах? Просто у меня клиенты с большой посещаемостью было жаловались на спам, но после установки reCaptchaV3 спамеров как ветром сдуло. Если не используется, советую…
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          8