VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Всем здравствуйте!
Форуму куча лет, и у многих юзеров электронные адреса потеряли валидность. Причём много таких, которые на форум раз в три года заходят, а почты, указанной при регистрации, давно нет. Удалить их нельзя: ресурс узкоспециализированный, и они нам очень ценны.
В чём проблема: форум постоянно шлёт уведомления об ответе в древних темах, поздравления с ДР (их конечно можно отключить), и иногда приходится делать массовую рассылку по важным поводам. Естественно, что для почтовых серверов, на которые мы пытаемся отправить письма на заблокированные аккаунты, мы набираем вполне ощутимую карму спамеров: за письма на несуществующий ящик на большинстве почт предусмотрена блокировка отправителя.
Как правило, на такие письма мы сразу получаем ответ своего почтового хостера: "письмо отправлено на несуществующий адрес".
Подскажите, можно ли на VBulletin выборочно выпилить невалидные e-mail адреса? Каким-нибудь скриптом, или другим человеческим способом?
@vllv, вы же сами и ответили на свой вопрос. В следующий раз когда будете создавать рассылку, при получении ответа, что адрес не валидный, вносите его в черный список.
Ну или можете произвести тестовую рассылку при помощи smtp с левого адреса, при ответе с ошибкой 505 (email не существует), производите нужные действия, к примеру добавьте в таблицу user поле email_does_not_exists (просто пример) и случае ошибки, ставьте для поля 1, при следующей рассылке отслеживайте данное поле.
Smalesh
В Черном списке
Join Date: Oct 2006
Награды в конкурсах:
Posts: 3,055
Версия vB: 3.8.7
Пол:
Reputation:
Мастер 3981
Репутация в разделе: 1320
0
Можно/нужно разгребать Return-Path, даже автоматически (где-то мелькал плагин)
@tays
Эксперт
Join Date: Jun 2006
Posts: 369
Версия vB: 3.8.x
Пол:
Reputation:
Professional 1064
Репутация в разделе: 746
0
@vllv, для решения проблемы нужен доступ к логам почтового сервера, в которых фиксируются успешные и неуспешные доставки писем.
Общая схема:
1) Скриптом парсится лог почтового сервера на предмет неуспешных доставок почты (статус bounced, но в принципе можно и deferred тоже). На выходе получаем список проблемных адресов электронной почты.
2) Скриптом обрабатывается список п.1 и соответствующие пользователи в БД vbulletin (с помощью SQL-запроса к БД форума) переводятся в статус ожидающих подтверждение по email.
SQL-запрос вида:
PHP Code:
UPDATE user SET usergroupid=3 WHERE usergroupid=2 AND email IN ('email1','email2',...'emailN')
В принципе п.1 и п.2 можно объединить в "один флакон".
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
1
уже задумывался над этим вопросом как то...
и даже скриптик написал (функции проверки стащил с php.net и допилил для своих нужд), который проверяет почту узера/ответ почтового сервера и заполняет HTML файл списком майл-адресов/доменов почты, которые уже не существуют или не отвечают на запрос скрипта
выглядит список примерно так:
ID узера, e-mail узера, ник + ссылка на редактирование этого узера в админке
разумеется, можно забивать файл просто майл адресами, для упрощения работы с этим файлом
можно так же, сразу в скрипте изменять узеру группу в БД на "ожидающие подтверждения e-mail"
запуск скрипта начинается всегда резво, затем, с каждым проходом цикла, начинает притормаживать
и не всегда отрабатывает корректно
иногда стопорится на адресах, в качестве почтового домена используется поддомен, пример: fm.donbass.com или friko2.onet.pl и т.д...
"стопорится", в том смысле, что скрипт "задумывается" на какое то время, а затем и вовсе, сервак возвращает ошибку
поэтому пока оставил эту затею =)
@logi
Знаток
Join Date: Sep 2009
Location: Россия, Москва
Posts: 561
Версия vB: 3.8.4
Пол:
Reputation:
Knowing 263
Репутация в разделе: 159
0
kerk, а можно попробовать твой скриптик на своем форуме?
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
3
emchk.zip (3.0 Кб)
в файле нужно найти несколько строк и заменить значения на свои
например, строка
PHP Code:
$file_name = '/albumimages/email_failed.html';
это где создавать файл хтмл с не валидными майлами
или строка
your.valid.email@gmail.com - заменить на свой майл
функция __validate_Email_Using_SMTP() имеет 5 агрументов
1. обязательный, это собсно какой майл проверять
2. от какого домена запрос
3. от какого майла запрос (очень желательно, что бы домен из #2 и домен из этого пункта совпадали)
4. режим отладки (будет показан процесс выполнения), по умолчанию НЕТ (false)
5. проверять забаненные майл адреса (из настроек воблы), т.е. если проверяемый майл будет в списке забаненных, то функция вернет FALSE и значит такой майл попадет в список
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
0
да и еще...
если сервер на винде, на серваке должна быть разрешена функция exec() т.к. она используется в скрипте в функции __getmxrr()
это замена стандартной getmxrr() которой нет в PHP под виндовс
скрипт загружать и выполнять из корня форума
узер, который будет выполнять скрипт, должен иметь привилегии супер-админа и иметь доступ в админку, это проверяется в скрипте
если скрипт застопорился на каком то узере/майле, можно прекратить выполнение и начать с ID следующего по порядку узера
к примеру, скрипт остановился на ID 12344
начинать следующее выполнение с ID 12345
Code:
/emchk.php?do=ch&startat=12345
@logi
Знаток
Join Date: Sep 2009
Location: Россия, Москва
Posts: 561
Версия vB: 3.8.4
Пол:
Reputation:
Knowing 263
Репутация в разделе: 159
0
kerk, работает. Медленно (на ночь ставил ), иногда ошибается - но работает. Только вот @mail.ru не ловит, ну никак и ни одного! Мейл дополнительно проверял на тестовом аккаунте с заведомо несуществующими адресами.
Использую не SMTP, а PHP mail.
Last edited by logi : 07-25-2017 at 03:08 AM.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,711
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20257
Репутация в разделе: 8432
1
Quote:
Originally Posted by logi
вот @mail.ru не ловит
почему то не удивлен...
я давным давно забил с прибором на эту гоп компашку =)