Пригласить друга

InstantCMS 1.X
#1 12 апреля 2017 в 22:57
Иногда админу сайта приходили письма с содержанием:
-"This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:" и т. д.

Полагаю, что это роботы пытались "пригласить друга".
Поставил защиту (по своему разумению) в файл modules\mod_invite\module.php добавил строки
$yur_email = cmsCore::request('yur_email', 'str', '');
if ($yur_email) $errors = true;
а в файл templates\_default_\modules\mod_invite.tpl добавил строку
<input type="hidden" name="yur_email" value="" />

Так после этого писем стало намного больше.
Это случайное совпадение или с кодом я накосячил?
#2 13 апреля 2017 в 08:44

The following address(es) failed:" и т. д.

Argus
Это и т.д. самое важное из этого. Ни какого отношения к icms данное сообщение, скорее всего, не имеет. Настраивайте почту на сервере или обратитесь к хостеру. Это довольно расспостранённая ошибка почтового сервера.
#3 13 апреля 2017 в 11:01
Собственно, тут два вопроса.
Нет ли ошибок в коде, который я вставил?

И второй вопрос. Увеличение количества таких писем может быть как-то связано с изменением кода?
Было раньше 1 — 2 в месяц, после изменения кода 1 — 2 в день, а сегодня за ночь аж 15 штук.

В коде письма видны участники сообщения, в том числе есть и скрипт движка.
Вот "дословный" текст письма.
  1. This message was created automatically by mail delivery software.
  2. A message that you sent could not be delivered to one or more of its
  3. recipients. This is a permanent error. The following address(es) failed:
  4.  
  5. proshade_bob@yahoo.com
  6. SMTP error from remote mail server after MAIL FROM:<info@My__Site.ru> SIZE=4217:
  7. host mta5.am0.yahoodns.net [xx.xxx.xxx.xx]: xxx x.x.x [TSS04] Messages
  8. from xx.xx.xx.xxx temporarily deferred due to user complaints - 4.16.55.1;
  9. see https://help.yahoo.com/kb/postmaster/SLN3434.html:
  10. retry timeout exceeded
  11.  
  12. ------ This is a copy of the message, including all the headers. ------
  13. Return-path: <info@My__Site.ru>
  14. Received: from [xx.xxx.xx.xx] (helo=cl15.My__Hoster.ru)
  15. by mr5.My__Hoster.ru with esmtp (Exim 4.80.1)
  16. (envelope-from <info@My__Site.ru>)
  17. id 1cxxNB-0002eg-MK
  18. for proshade_bob@yahoo.com; Tue, 11 Apr 2017 18:06:25 +0300
  19. Received: from cl15-w.My__Hoster.ru (cl15-w.My__Hoster.ru [xx.xxx.xx.xxx])
  20. by cl15.My__Hoster.ru (Postfix) with ESMTP id ТутБуквыЧисла
  21. for <proshade_bob@yahoo.com>; Tue, 11 Apr 2017 18:06:24 +0300 (MSK)
  22. Received: (from user25@localhost)
  23. by cl15-w.My__Hoster.ru (8.14.4/8.14.4/Submit) id v3BF6OKa023868;
  24. Tue, 11 Apr 2017 18:06:24 +0300
  25. To: proshade_bob@yahoo.com
  26. Subject: =?UTF-8?ТутБуквыИчисла=?=
  27. X-Hosting-User: user25
  28. X-PHP-Script: /home/user25/My__Site.ru/includes/phpmailer/class.phpmailer.php
  29. X-PHP-Uri: My__Site.ru/index.php
  30. X-PHP-Addr: xxx.xxx.xxx.x
  31. X-PHP-Originating-Script: числа:class.phpmailer.php
  32. Date: Tue, 11 Apr 2017 18:06:24 +0300
  33. From: Name my__site <info@My__Site.ru>
  34. Message-ID: <ТутБуквыИчисла@My__Site.ru>
  35. X-Priority: 3
  36. X-Mailer: PHPMailer 5.2.6 (https://github.com/PHPMailer/PHPMailer/)
  37. MIME-Version: 1.0
  38. Content-Type: multipart/alternative;
  39. boundary="ТутБуквыИчисла"
  40. Content-Transfer-Encoding: 8bit
  41.  
  42. --ТутБуквыИчисла
  43. Content-Type: text/plain; charset=UTF-8
  44. Content-Transfer-Encoding: 8bit
  45.  
  46. Здравствуйте!
  47. 58ecf0ed42333 приглашает Вас зарегистрироваться на сайте «Name my__site».
  48. После регистрации Вам станут доступны все функции сайта.
  49. Вы сможете завести блог, загружать фотографии и общаться с друзьями.
  50. Адрес нашего сайта: http://My__Site.ru.
  51. Страница регистрации: http://My__Site.ru/registration.
  52. С уважением, 58ecf0ed42333 и администрация сайта «Name my__site».
  53. --
  54. Письмо отправлено автоматически, пожалуйста, не отвечайте на него.
  55.  
  56. --ТутБуквыИчисла--
#4 13 апреля 2017 в 15:29
В коде вы не указали value. Выходит переменная приходит пустой и error== false. Так же дожен бть такой знак ==, а не =. Ну а вообще данный код ничего не решает. У вас не настроена почта на сервере. И у user25 к вам почта не приходит, вот от сюда и сообщения.
#5 13 апреля 2017 в 16:05
Так и задумано, если человек, то переменная придёт пустой, а если робот, то есть надежда что он заполнит и это скрытое поле, а значит в php-коде, по аналогии с родным кодом, например,
if (!$email){
cmsCore::addSessionMessage($_LANG['ERR_NEED_MAIL'], 'error'); $errors = true;
}
я и написал if ($yur_email) $errors = true;
#6 13 апреля 2017 в 16:19
Насчёт $errors = true;, да всё верно, это я тормознул. Со всем остальным смотрите сами. Нравится изобретать велосипед, удачи.
P.S. С полями я лично ничего не понял. Если оно скрытое, как его кто то заполнит или не заполнит?
#7 13 апреля 2017 в 18:40

Если оно скрытое, как его кто то заполнит или не заполнит?

Мартин
Если скрытое, то ни как (без специальных способов) человек не заполнит, да и не надо заполнять, а робот не смотрит (полагаю) на страницу, а читает код, создаёт у себя в памяти аналогичную форму, заполняет все поля, и отправляет эту свою копию формы, не нажимая кнопки "Отправить" на странице.
#8 13 апреля 2017 в 18:54
Понятно. Но тогда наверное лучше прятать не js а через css. Да и боты говорят не ведутся сейчас на hidden
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.

Похожие темы

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.