Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

как проверить акутальность емейл в базе юзеров?

Проблемы с установкой или работой phpBB 3.2.x? Получите помощь здесь!
Внимание: с 7 ноября 2020 года phpBB Group завершено дальнейшее развитие phpBB версии 3.2, а с 1 августа 2024 года будет прекращена её поддержка.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.

Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
ps7
phpBB 1.4.4
Сообщения: 138
Стаж: 9 лет 1 месяц
Благодарил (а): 3 раза
Поблагодарили: 2 раза

как проверить акутальность емейл в базе юзеров?

Сообщение ps7 »

при рассылке от форума, часто письма улетают в спам.
стал разбираться с почтой мейл.ру
они говорят одна из причин : у вас много писем на несуществующие емейл адреса. это странно т.к. при регистрации активация на емейл и подтверждение записи админом. возможно, что из-за того что форуму более 10лет накопились мертвые емейлы..

вопрос.
1. как их вычислить? (прямо в базе пользователей)
2. после вычисления нужно не удалять юзеров, а просто отключить им рассылку от администратора.


цитата от мейл ру.
Несуществующие адреса получателей

Большое количество некорректных получателей вредят вашей репутации. Вы можете сократить количество таких получателей в вашей рассылке, если будете использовать двойную (подтвержденную) процедуру подписки на рассылку. Даже если в вашем листе будет несколько невалидных адресов, ваша репутация не испортится.

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

Наличие в рассылках более 5% невалидных адресов может привести к попаданию писем, отправленных с вашего домена, в папку «Спам» или даже к полной их блокировке.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: как проверить акутальность емейл в базе юзеров?

Сообщение Nekstati »

ps7,
Глобально актуальность никак не проверить. Но на каждое письмо, отправленное на несуществующий адрес, почтовый сервер возвращает вполне информативное сообщение об ошибке.

1. В админке в поле "Обратный email-адрес" указываете адрес реального ящика, чтобы туда приходили сообщения об ошибках.
2. Через недельку заходите в этот ящик, читаете сообщения. Если где-то написано "User does not exist" и т.п. - копируете себе этот email.
3. Деактивируете проблемные имейлы SQL-запросом, как указано двумя постами ниже. ↓↓↓
4. Заглядываете в этот ящик раз в месяц, чтобы впредь мёртвые имейлы не накапливались.

Наверное, это можно и автоматизировать. Но сложно.
Последний раз редактировалось Nekstati 16.03.2020 19:09, всего редактировалось 1 раз.
Причина: уточнение SQL-запроса
ps7
phpBB 1.4.4
Сообщения: 138
Стаж: 9 лет 1 месяц
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: как проверить акутальность емейл в базе юзеров?

Сообщение ps7 »

поддержка хостинга посоветовала сервисы.. якобы они проводят проверку
https://neverbounce.com
https://www.emaillistverify.com
http://www.datavalidation.com

но как-то боязно сливать им базу пользователей. вдруг они ее в своих целях используют
да еще и с логинами/паролями.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3335
Стаж: 15 лет
Благодарил (а): 35 раз
Поблагодарили: 1434 раза

Re: как проверить акутальность емейл в базе юзеров?

Сообщение Nekstati »

ps7 писал(а): 16.03.2020 12:34 но как-то боязно сливать им базу пользователей
 
Небезосновательные опасения. К тому же вам придётся сначала скормить этим сервисам вручную список своих имейлов, а потом, получив результат, вручную их деактивировать. А между тем парой постов выше я вам предложила хоть и не намного менее хлопотный, но зато бесплатный и безопасный способ.

Вот вам, плюс к тому способу, уточнённый SQL-запрос для деактивации рассылок на конкретные имейлы:

Код: Выделить всё

SET @user_ids = (
	SELECT user_id FROM phpbb_users
		WHERE user_email IN('111@gmail.com', '222@gmail.com', '333@gmail.com')
); 

UPDATE phpbb_users
	SET user_notify = 0, user_notify_pm = 0, user_notify_type = 0, user_allow_viewemail = 0, user_allow_massemail = 0
		WHERE user_id IN(@user_ids);

UPDATE phpbb_user_notifications
	SET notify = 0
		WHERE method = 'notification.method.email'
		AND user_id IN(@user_ids);

DELETE FROM phpbb_topics_watch
	WHERE user_id IN(@user_ids);

DELETE FROM phpbb_forums_watch
	WHERE user_id IN(@user_ids);
 
Вместо '111@gmail.com', '222@gmail.com', '333@gmail.com' подставляйте имейлы ваших пользователей. В первый раз помучаетесь и потратите много времени, потом будет легче. :)
Перенесено из форума Флейм в форум Поддержка phpBB 3.2.x 16.03.2020 19:20 модератором Nekstati

Аватара пользователя
KEMnEP
phpBB 2.0.17
Сообщения: 1106
Стаж: 9 лет
Благодарил (а): 42 раза
Поблагодарили: 281 раз

Re: как проверить акутальность емейл в базе юзеров?

Сообщение KEMnEP »

Хочешь чужой форум в спам загнать? регистрируйся на любые левые емайлы в том же маил ру, после жми постоянно выслать письмо активации (актуально для 3.3 phpbb) и вуаля, жертва в емаил минусинске. Какая-то неправильная позиция mail компаний.
ps7
phpBB 1.4.4
Сообщения: 138
Стаж: 9 лет 1 месяц
Благодарил (а): 3 раза
Поблагодарили: 2 раза

Re: как проверить акутальность емейл в базе юзеров?

Сообщение ps7 »

>. В админке в поле "Обратный email-адрес" указываете адрес реального ящика, чтобы туда приходили сообщения об ошибках.
>2. Через недельку заходите в этот ящик, читаете сообщения. Если где-то написано "User does not exist" и т.п. - копируете себе этот emai

адрес указан , но на него ничего не приходит! похоже почтовый сервис фильтрует на другом этапе..
а вычислить их можно в логе рассылки, который есть у хостинга. но далеко не всегда там удобный файл получается.. но похоже это без вариантов - копаться в логе
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 2 месяца
Благодарил (а): 797 раз
Поблагодарили: 175 раз

Re: как проверить акутальность емейл в базе юзеров?

Сообщение southklad »

Nekstati писал(а): 19.12.2019 4:33 В админке в поле "Обратный email-адрес"
Это где такой пункт?
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

Re: как проверить акутальность емейл в базе юзеров?

Сообщение Siava »

igorbond, в настройках почты в админке.
Адрес отправителя email:
Этот адрес будет использован как адрес отправителя всех email-сообщений для технических контактов. Он всегда будет использоваться в поле Sender в email-сообщений.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 2 месяца
Благодарил (а): 797 раз
Поблагодарили: 175 раз

Re: как проверить акутальность емейл в базе юзеров?

Сообщение southklad »

Siava, Этот видел, просто смотрю название другое
Изображение
Аватара пользователя
Beer
phpBB 2.0.9
Сообщения: 708
Стаж: 12 лет 8 месяцев
Благодарил (а): 193 раза
Поблагодарили: 69 раз

Re: как проверить акутальность емейл в базе юзеров?

Сообщение Beer »

Майл даже регистрацию не пропускает - надо добавлять в белый список предварительно.

Я поначалу пытался отслеживать и удалять умерших по сообщениям:
Это письмо отправлено почтовым сервером yandex.ru.
К сожалению, мы вынуждены сообщить Вам о том, что Ваше письмо не может
быть отправлено одному или нескольким адресатам. Технические подробности можно найти ниже


Но в ручном режиме это жуть....
Перевел в спам.
Сконвертировался с SMF2 в phpBB3.2
Аватара пользователя
BadBlock
phpBB 1.4.3
Сообщения: 92
Стаж: 19 лет
Откуда: Саров, Россия
Благодарил (а): 8 раз
Поблагодарили: 14 раз
Контактная информация:

Re: как проверить акутальность емейл в базе юзеров?

Сообщение BadBlock »

Сделал для себя скрипт, которым можно деактивировать емейлы на несуществующие адреса.
Выкладываю в общий доступ, пользуйтесь.
Просто вводите email, с которого идёт отлуп, дальше скрипт всё делает сам.
invalidemail.php

Данный скрипт позволяет администраторам форума phpBB 3.2 отключать доставку email пользователям с неактивными адресами в профиле.
Скрипт выдаёт HTML-форму, в которую нужно ввести email-адрес, после чего скрипт:

1. Найдёт юзера по адресу.
2. Отключит юзеру все email-уведомления.
3. Отправит юзеру ЛС с описанием проблемы и способом её решения.

Инструкция.

1. Поместите скрипт в поддиректорию основной директории форума. Имя поддиректории не имеет значения.

Например, если index.php вашего форума находится в /forum/index.php , вы можете
поместить скрипт сюда: /forum/scripts/invalidemail.php

2. Отредактируйте первые две команды в скрипте, чтобы определить имена пользователей:

define('SCRIPT_ACCESS_USERNAME', ''); -- задайте имя пользователя, у которого должен быть доступ к скрипту
define('PM_SENDER_USERNAME', ''); -- задайте имя пользователя от имени которого будую отправляться ЛС.

3. Залогиньтесь на форум.

4. Перейдите на URL скрипта, например:
http://yoursite.com/forum/scripts/invalidemail.php
invalidemail.png
invalidemail2.png
Скачать: https://filedistr.ru/2020/invalidemail.zip
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

Re: как проверить акутальность емейл в базе юзеров?

Сообщение Siava »

BadBlock, отлично! Осталось его чуть модифицировать и скормить разом пару тысяч адресов email из своей базы :)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
BadBlock
phpBB 1.4.3
Сообщения: 92
Стаж: 19 лет
Откуда: Саров, Россия
Благодарил (а): 8 раз
Поблагодарили: 14 раз
Контактная информация:

Re: как проверить акутальность емейл в базе юзеров?

Сообщение BadBlock »

Siava писал(а): 25.03.2020 10:34 BadBlock, отлично! Осталось его чуть модифицировать и скормить разом пару тысяч адресов email из своей базы
Полагаю, для этого всего-то надо поменять <input type=text> на <textarea>, подразумевая один email на строку, после чего разбить ввод на строки и организовать цикл. :)
TomRX
phpBB 1.4.4
Сообщения: 133
Стаж: 5 лет 2 месяца
Откуда: Tomsk
Благодарил (а): 30 раз
Поблагодарили: 5 раз
Контактная информация:

Re: как проверить акутальность емейл в базе юзеров?

Сообщение TomRX »

Отличный скрипт от BadBlock, но возникла необходимость чтобы скрипт продолжал делать первое и второе, но не делал третье - чтобы ЛС юзеру не отправлялось:
BadBlock писал(а): 25.03.2020 9:50 1. Найдёт юзера по адресу.
2. Отключит юзеру все email-уведомления.
3. Отправит юзеру ЛС с описанием проблемы и способом её решения.
Какие строки кода нужно вырезать или закомментировать?
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

Re: как проверить акутальность емейл в базе юзеров?

Сообщение Татьяна5 »

tomskafo писал(а): 20.04.2020 2:17 Какие строки кода нужно вырезать или закомментировать?

Код: Выделить всё

            /**** Sending PM ***/
            if (empty($senderid)) {
                echo "<br>Skipping PM...";
                break;
            }

            // Process message template.
            $message = str_replace('{email}', $email, $message);
            $message = str_replace('{username}', $u['username'], $message);
            $message = str_replace('{forumurl}', $forumurl, $message);

            // Send PM.
            require_once($phpbb_root_path . 'includes/functions_privmsgs.php');
            require_once($phpbb_root_path . 'includes/functions_content.php');

            $uid = $bitfield = $options = '';
            generate_text_for_storage($message, $uid, $bitfield, $options, true, true, true);
            $privmsgdata = array(
                'address_list'      => array('u' => array($u['user_id'] => 'to')),
                'from_user_id'		=> $senderid,
                'from_user_ip'		=> $ip,
                'enable_bbcode'		=> true,
                'enable_smilies'	=> false,
                'enable_urls'	    => true,
                'enable_sig'		=> 0,
                'icon_id'           => 0,
                'message'		    => $message,
                'bbcode_bitfield'	 => $bitfield,
                'bbcode_uid'		 => $uid,
            );
            if (!submit_pm('post', $subject, $privmsgdata, $put_in_outbox = false, $silence = true)) {
                echo "<br />Error sending PM.";
            } else {
                echo "<br />PM send successfully.";
            }
Отправлено спустя 2 минуты 2 секунды:
А вообще можно просто не задать ник, от которого отправлялись бы ЛС
Ответить

Вернуться в «Поддержка phpBB 3.2.x»