[BETA] unsubscribeme - отписка от массовых рассылок

Отписка от массовых рассылок через ссылку 'mailto' в письме

Начиная с версии 3.1.x, моды были заменены "расширениями", которые выполняют ту же самую функцию, но без изменений в исходном коде движка.
Аватара пользователя
c61
Разработчик модов
Сообщения: 249
Зарегистрирован: 24.08.13 16:46
Благодарил (а): 20 раз
Поблагодарили: 62 раза

[BETA] unsubscribeme - отписка от массовых рассылок

Сообщение c61 »

unsubscribeme: Unsubscribe 'mailto' link in admin mass mailing emails body
phpBB 3.1 extension

copyright (c) 2015 c61@yandex.ru http://c61.no-ip.org
license http://opensource.org/licenses/gpl-license.php GNU Public License


unsubscribeme: Отписка от массовых рассылок через ссылку 'mailto' в письме

Расширение добавляет в письма, отправляемые администратором через "Массовую расылку почты" Администраторского раздела, ссылку на отписку от рассылки в виде 'mailto' на заданный почтовый ящик, периодически проверяемый задачей планировщика Cron phpBB, выполняющей отписку пользователя при обнаружении соответствующего письма.

Зачем это надо ? Затем, что наличие возможности отписки от рассылки является требованием многих почтовых сервисов к осуществлению массовых рассылок, а также потому, что пользователи, получившие нежелательные письма, могут пометить их как спам со всеми вытекающими последствиями (слишком большой показатель нажатий на кнопку "спам" ведет к последствиям, которые декларирует международный закон борьбы со спамом).
Инструмент для отписки должен быть неотъемлемой частью всех массовых рассылок, такая практика принята во многих странах мира и кое-где такие требования регулируются законом.

Как можно решить проблему в phpBB иными способами:
- казалось бы, проще всего добавлять в тело письма ссылку на url (с уникальным идетнификатором пользователя), по клику на которую выполняется скрипт отписки от рассылки, но не тут то было: SMTP оказывается совершенно неэффективен, если в настройках указать отправку только 1 письма за раз и, кроме того, в phpBB 3.1 не предусмотрено событие ядра, позволяющее изменять тело письма для отправки каждой порции писем;
- пусть отправляется по 1 письму за раз, но тогда можно использовать в заголовке List-Unsubscribe, однако, заголовки тоже невозможно модифицировать;
- можно придумать еще несколько способов, но, на мой взгляд, предлагаемый наиболее прост.

ВНИМАНИЕ !!! Необходимые условия работы расширения:
- для массовой рассылки почты необходимо включить и настроить SMTP;
- для PHP должно быть подключено расширение imap;
- должен использоваться почтовый ящик на сервере, поддерживающем IMAP, SSL и возможность добавления уникальных идентификаторов после имени ящика (перед "@") и символа "+" (например, myemail+unsubscribeme@yandex.ru), этим условиям удовлетворяют почтовые сервисы google, yandex, mail.ru и др.;
- для отписки от массовых расылок лучше завести отдельный ящик - только для этих целей, поступающие письма не должны попадать в спам, желательно, чтобы не было правил обработки почты, перекладывающих эти письма (а они помечаются ключевым словом "+unsubscribeme" после имени ящика отправителя перед "@") из входящих в другие папки.

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


Дополнение расширения: Администратор имеет возможность задать отличный от используемого по умолчанию шаблон письма, при этом язык, установленный пользователем в своих настройках, игнорируется.

Необходимое условие работы дополнения расширения:
- разрешение записи файлов скриптами PHP в каталог конференции '/language/язык/email', при отсутствии указанного разрешения будет использоваться способ создания текста сообщения из шаблонов, принятый в phpBB по умолчанию.

В своем шаблоне могут использоваться переменные '{SITENAME}', '{CONTACT_EMAIL}', '{MESSAGE}', '{EMAIL_SIG}', '{UNSUBSCRIBEME_MAILTO}'.


Установка

Копировать содержимое каталога root в корневую папку конференции с сохранением структуры каталогов (расширения phpBB 3.1 располагаются в /ext).


Особенности:

- для периодической проверки почты используется Cron со всеми вытекающими последствиями в случае, если почтовый сервер долго не отвечает (кстати, рекомендуется задавать период выполнения задачи cron не чаще, чем раз в 20-30 минут);
- после проверки наличия писем на сервере и выполнения отписки пользователей от рассылки все письма с "+unsubscribeme" удаляются.


История версий

0.0.3 - 20151103:
- в текстах везде исправлено 'e-mail' на 'email'
- реализовано дополнение расширения: свой шаблон письма при массовой рассылке

0.0.2 - 20151031:
- текст и mailto перенесены в другое место письма: после сообщения перед подписью

0.0.1 - 20151030:
- первая версия



Скачать:
unsubscribeme_v_0_0_3.zip
(28.84 КБ) 349 скачиваний
unsubscribeme_v_0_0_3.zip
(28.84 КБ) 349 скачиваний
unsubscribeme_v_0_0_2.zip
(26.46 КБ) 1254 скачивания
unsubscribeme_v_0_0_2.zip
(26.46 КБ) 1254 скачивания

Скриншоты:
ume_adm1.gif
ume_adm2.gif
ume_adm3.gif
ume_adm4.gif
ume_adm5.gif

Тема на моей тестовой площадке тынц

P.S. Припоминаю:
Shredder писал(а):Помнится, c61 хотел реализовать эту возможность для 3.0, но потом забил
Таки не забил :lol:
Beer
Сообщения: 13
Зарегистрирован: 27.01.18 02:57
Благодарил (а): 2 раза
Поблагодарили: 1 раз

[BETA] unsubscribeme - отписка от массовых рассылок

Сообщение Beer »

Перечитал но не вкурил - после отписки юзер в какую-то группу попадает или каким образом будет игнорироваться рассылка ему очередного сообщения?
В админке при создании рассылки выбираются группы для рассылки либо все.

Я сделал групу, "Без рассылок" и хочу в нее переводить для наглядности.
Leo Angel
Сообщения: 4
Зарегистрирован: 14.02.25 14:07
Поблагодарили: 1 раз

[BETA] unsubscribeme - отписка от массовых рассылок

Сообщение Leo Angel »

Интересно, будет ли это расширение работать на 3.3.хх и как оно ведёт себя с другой почтой отправителя, например gmail?
Кто-то устанавливал и проверял?
Shredder
Администратор
Сообщения: 1084
Зарегистрирован: 22.08.13 09:05
Благодарил (а): 136 раз
Поблагодарили: 264 раза
Контактная информация:

[BETA] unsubscribeme - отписка от массовых рассылок

Сообщение Shredder »

Leo Angel
Сам массовыми рассылками не пользуюсь, поэтому не пробовал. Я заменил в расширении файл config/services.yml на совместимый с phpBB 3.3. Можете установить у себя где-нибудь на тестовой площадке и протестировать.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Leo Angel
Сообщения: 4
Зарегистрирован: 14.02.25 14:07
Поблагодарили: 1 раз

[BETA] unsubscribeme - отписка от массовых рассылок

Сообщение Leo Angel »

Shredder, спасибо.
Leo Angel
Сообщения: 4
Зарегистрирован: 14.02.25 14:07
Поблагодарили: 1 раз

[BETA] unsubscribeme - отписка от массовых рассылок

Сообщение Leo Angel »

Попробовал!
Намучился с выполнением всех требований, но ПОЛУЧИЛОСЬ!!!
Всё работает!
Почта от Gmail.
Включил и настроил SMTP.
Для PHP на сервере форума включил расширение imap.
Основная "возня" была с настройкой imap сервера.
В почте, на которую будут приходить письма с отписками, нужно включить imap. Затем в настройках расширения указать этот ящик и пароль. Но не к самому ящику, а сделать пароль для приложения (ВАШЕГО ФОРУМА!) в аккаунте Gmail, и этот пароль вставить в настройки расширения в поле ПАРОЛЬ. Пока я не сделал это, расширение на находило imap сервер.
Хорошо, что на странице настроек расширения есть Результаты тестирования и в них видно что найдено, что не хватает.
Для того, чтобы проверить, что cron работает пришлось ещё поставить расширение Cron Status. Но это не обязательно, просто, чтобы было видно что и как с cron'ом происходит.
После срабатывания cron'а в Логе пользователей появляется строка Пользователь отписан от массовых рассылок.
И при следующей массовой рассылке этому пользователю письмо уже не приходит.

Из того, что не очень. Заметил, что не всегда отрабатывает cron. Пишется, что письма с отпиской найдены на сервере, но бывали случаи, что расширение не отписывало пользователей. Почему так ещё не понял. Cron должен отрабатывать у меня каждые 20 минут, и он, судя по Статусу, отрабатывает, но строки, что пользователь отписан не всегда появляются в Логе пользователей. Есть подозрение, что это связано с тем, что письма с просьбой отписать от массовой рассылки приходят в не зашифрованном виде. Но это пока предположение. Буду этот момент проверять ещё. Пока что всё, что приходило в зашифрованном виде отработало как нужно.
И ещё в письмо с просьбой отписать нужно вписывать хоть что-то и в заголовок и в тело сообщения, иначе расширение не отписывает . Показывает, что нашло на сервере письмо для отписки, но не отписывает.

В общем, не смотря на некий геморр в настройках, всё работает!
Продолжаю проверять и по результатам отпишусь.
Shredder
Администратор
Сообщения: 1084
Зарегистрирован: 22.08.13 09:05
Благодарил (а): 136 раз
Поблагодарили: 264 раза
Контактная информация:

[BETA] unsubscribeme - отписка от массовых рассылок

Сообщение Shredder »

Leo Angel писал(а): 15.02.25 20:38 И ещё в письмо с просьбой отписать нужно вписывать хоть что-то и в заголовок и в тело сообщения, иначе расширение не отписывает .
Спасибо за замечание, добавил в перевод нужные строки.
Мои моды и расширения для phpBB
Выполняю работы по phpBB3 на заказ. Пишите в личку или на почту.
Бесплатная поддержка - только в темах.
Leo Angel
Сообщения: 4
Зарегистрирован: 14.02.25 14:07
Поблагодарили: 1 раз

[BETA] unsubscribeme - отписка от массовых рассылок

Сообщение Leo Angel »

Думаю, в файл unsubscribeme.php в папке ru тоже нужно внести эти изменения.
Ответить