После того как я отключил Telegram-канал, возникла задача: как доставлять контент тем, кто не хочет обновлять страницу руками каждый день?
Стандартные решения (Jetpack, Mailchimp) — это мусор. Они тяжелые, они собирают ваши данные, они зависят от третьих сторон. Я не строю автономную крепость, чтобы зависеть от чужих API.
Поэтому я написал своё решение. Loveprod Comms.
Как это работает
Я развернул локальную систему рассылки прямо внутри ядра сайта. Она работает через мой почтовый сервер, без посредников.
- Формат: Еженедельный дайджест (Weekly Digest). Приходит в пятницу вечером.
- Содержание: Скрипт анализирует просмотры за неделю и собирает ТОП-10 самых горячих материалов. Если я ничего не писал — письмо не придет. Спама не будет.
- Приватность: Никаких трекеров, пикселей и красивых HTML-баннеров. Только
Plain Text, только хардкор. Такие письма доходят всегда.
Как подключиться
В правом нижнем углу сайта появилась плавающая кнопка-терминал >_.
- Нажмите на кнопку.
- Введите Email.
- Подтвердите подписку в почте (защита от ботов).
Теперь связь прямая. Добро пожаловать в закрытый клуб.
👁️ 40

привет, игорь. слушай, что-то не могу подписаться. там внизу две кнопки, подписка и close, и обе не нажимаются. браузер firefox 115 esr, windows 7 домашняя расширенная.
Привет!
Там возможно нажатие срабатывает.
Проверь спам.
Может быть письмо туда упало
Доброе утро!
Поправил плагин. Проверь, пожалуйста.
Если что отпиши. Должно работать теперь норм.
Не учёл я момент, что есть старые устройства/браузеры
и тебе доброе утро. нет, увы, всё по-прежнему. ты говоришь, что письмо может в папку спам падать. тут не в этом дело. там само поле редактора для ввода почты не появляется. есть две кнопки: подписка и close, которые никак не реагируют ни на ентер, ни на пробел. они в самом низу страницы. вот как это выглядит у меня:
СЛЕДУЙ ЗА МНОЙ!
GitHub VK
loveprod/ сделано в: loveprod
Подписка
Close ×
слушай, я со смартфона попробовал, но там та же самая хрень. там тоже firefox, но более свежая версия, точно не скажу какая, толи 143, толи 144, точно не вспомню, давненько не обновлял. слушай, у меня такая мысль возникла: а плагин так не может на блокировщик рекламы реагировать? у меня и там и там стоит ublock origin.
слушай, я вообще нихрена понять не могу! решил я для чистоты эксперемента зайти на сайт с браузера edge, он у меня на семёрке тоже есть. старая версия конечно, но зато тут никаких блокировщиков рекламы нету. и в точности такая же картина. ну я сдаюсь, правда! 😀 не понимаю, что это за хрень! 🙂
слушай, ну и квест же ты мне задал! 😀 получилось с браузера edge, но с таким переподвыподвертом, какие я только при работе с оркой видел, когда на дебиане сидел! 😀 в общем: на кнопке подписка я нажал ентер. а далее увидел между кнопками подписка и close неизвестный элемент, который проговаривался просто по щелчку. я на него ентер жму, а без толку. тогда я извернулся: встал курсором на кнопку подписка, и нажал таб. и попал в поле редактора. ввёл почту, и далее также табом, ибо по-другому никак, добрался до кнопки ентер. нажал её ентером и полез проверять почту. письмо действительно попало в папку спам. зато было интересно. :-D. только скажу сразу, что с firefox такой финт ушами, увы, не прокатит. 🙂
Хахахахахахах.
Не думал, что так будет.
Реально.
Поменял поведение.
У меня оно просто нормально было я и забил.
Теперь без модального окна.
Попробовал кстати заголовки почтовые добавить.
Посмотрим, как в пятницу рассылка отработает.
ага! вот теперь всё красивенько и доступненько! 🙂 да, в пятницу посмотрим, как всё отработает. думаю, проблем не возникнет. 🙂 кстати ты один из немногих к сожалению, кто делает проверку на существование подписки. я попробовал ввести свою почту снова, и он выдал:
> ERROR: EXISTS.
вот это реально круто. чувствуется профессионал. у большинства сколько не вводи адрес, всё равно будет происходить подписка. особенно у тех, у кого подтверждения нету. а буквально совсем недавно вообще дичь видел: смена пароля без повторного ввода, т.не. проверки на совпадения, и уведомления о самом факте смены. ты наверное не поверишь, но я такой дичи не видел раньше вообще нигде. 🙁
Ты абсолютно прав насчет проверки ERROR: EXISTS. Я это сделал осознанно. Во-первых, я ненавижу мусор в базах данных, а дубликаты — это первый признак бардака. Во-вторых, это простое уважение к тебе как к пользователю. Система должна давать понятный фидбек, а не молча падать или создавать хаос.
И про механику подписки ты тоже всё верно уловил. Когда ты вводишь почту, ты не попадаешь сразу в рассылку. Ты попадаешь в «предбанник». В базе твой email помечается статусом pending (в ожидании), и система отправляет тебе письмо с уникальной ссылкой-токеном. И только после твоего клика по ней статус меняется на active. Это моя защита от ботов, от случайных опечаток и, что самое главное, от мудаков, которые любят подписывать чужие адреса. А те, кто не подтвердил подписку? Они просто висят в этом «предбаннике» вечно. Может, когда-нибудь напишу скрипт, который будет их чистить, а может, и нет. Они не мешают.
Сама рассылка тоже простая, как молоток. Каждую пятницу в шесть вечера cron запускает скрипт. Он смотрит на счетчики просмотров (это тоже мой самописный костыль, который просто считает уникальные сессии), отбирает топ-10 постов за неделю и собирает из них текстовое письмо. Никаких картинок, никакого HTML, никакого трекинга. Просто чистая информация. И если я за неделю ничего не написал, скрипт просто видит, что постов нет, и завершает работу. Я не буду слать тебе пустые письма. В конец каждого письма вставляется твоя личная ссылка для отписки. И, конечно, все нужные заголовки для почтовиков (List-Unsubscribe, Precedence: bulk), чтобы Gmail и Яндекс сразу понимали, что это не спам, а честная рассылка.
А теперь про админку. Ты будешь смеяться, но там практически ничего нет. Я специально так сделал. Я вижу только три цифры: сколько активных подписчиков, сколько в «предбаннике» и когда следующий запуск. И одна большая кнопка «Отправить сейчас». Я не могу посмотреть список емейлов. Я не могу никого экспортировать или добавить руками. Это моя защита от самого себя. Чтобы не было соблазна превратить это в маркетинговый инструмент и начать злоупотреблять вашим доверием.
И да, вся эта система — это не недели работы. Это реально пара вечеров с кофе. Сделать правильно — это не сложно. Сложно — это заставить себя не идти по пути наименьшего сопротивления и не делать на отъебись.
А то, что ты рассказал про смену пароля без проверки и уведомления, — это эталонный пример той самой халатности, которая меня выбешивает. Это не просто плохой код, это прямое неуважение к безопасности пользователя. Так что спасибо тебе еще раз, что обращаешь на такие вещи внимание. Это доказывает, что есть еще люди, которым не все равно.