Не люблю я подписки, но тут пришлось сделать рассылку. Выпуск формируется автоматом, все как надо, но суть не в этом. Естественно надо дать возможность отписаться. Причем отписаться в один клик. Вот решил наработкой поделиться. [spoiler]
Я кстати объявил бойкот тутошнему движку и не собираюсь здесь коды писать
Сразу скажу, что работает только на схеме "персонально каждому подписчику", но я удивлюсь, если кто-то отправляет иначе, если только не группа людей.
2. В init.php помещаем данный код: http://www.d-it.ru/other/?f=unsubscri...e_init.php В GetMailHash советую добавить свою соль, зачем это применяется - опишу чуть ниже. Причем менять только раз и никогда больше.
3. Кидаем компонент на страницу отписки. Скачать его можно тут.
Теперь вкратце как работает алгоритм.
Перед отправкой выпуска каждому конкретному подписчику с помощью кода в init.php подменяются маски - ID подписки и код, основанный на хеше. По идее там можно что угодно написать, главное чтобы злоумышленник не догадался. Хотя, пару mail+ID уже сложно угадать.
Когда пользователь переходит по ссылке, проверяется соответствие хеш+пара (опять с помощью данной функции хеша) и его отписывают. Ему выводится сообщение (после проверки кода и хеша)
Вы действительно хотите отписаться от рассылки на адрес ******? Для подтверждения нажмите эту ссылку.
Если он жмет ссылку, то происходит отписка, вот и вся наука.
Солидарен с вашей иронией, Иван. Сам терпеть не могу эти рассылки. Но сервис только запустили, так что статистики нет.
ИМХО: CTR ничтожно мал будет (потому что до 60-70%% не дойдет письмо, а попадет в спам), процентов 10-20 (из тех, которым дошло) отпишутся. Сужу по другому опыту.
Ну и велик риск сразу получить бан от такого монстра как mail.ru.
Да уж, вещь действительно нужная, должна быть по умолчанию в каждой рассылке.
Все чаще сталкиваюсь с тем, что посетителей подписывают маркетологи без их ведома, а потом посетители пишут гневные письма на адрес вебмастера с просьбой больше не присылать им рассылку.
Небольшое дополнение - если сайты работают в многосайтовой системе то компонент отписки от рассылки лучше разместить в общем месте, например в файле /bitrix/do_unsubscribe.php, таким образом можно дописать эту ссылку только в одном шаблон подписки (который один для всех подписок), а отписка с каждого сайта будет происходить в шаблоне сайта, для которого сгенерирована подписка.
Респект автору!!! Спасибо за разъяснение и компонент, это очень хорошее дополнение основному функционалу. а то до этого после каждой рассылки сделанной нашими маркетологами мне сыпались гневные письма пользователей. Вообще уже не один наворот на сайте делал благодаря постам Антона, все работает на ура! Еще раз огромное спасибо автору!
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».