bxSender

Массовая рассылка e-mail сообщений
Автор дополнения
Андрей Степаненко
Пакетов
22
Закачек
5 528
Обычно отвечает в течение недели
Автор дополнения
Пакетов
22
Закачек
5 528
Обычно отвечает в течение недели
Версия 1.0.25-pl
Дата выпуска 30.07.2022
Загрузки 115
Просмотры 8 845
Внимание, этот компонент требует версию PHP 5.4 или выше! Если ваш сайт использует PHP ниже требуемого, установка этого дополнения может его сломать.
Внимание, этот компонент требует версию MODX не ниже 2.4 !
Компонент для массовой рассылки на e-mail и управления подписками пользователей с фронтенда. Так же ведется статистика по отправляемым письмам, можно видеть как пользователи открывают письма, переходят по ссылкам из письма, отписываются от рассылки, управляют листами для подписки.

Возможности


  • Управление подписками — на фронтенд добавлены сниппеты: форма для подписки новых пользователей, форма восстановление доступа к подписке и форма управление подпиской
  • Подписчики — это email адреса и имена подписчиков для рассылок, с возможностью импортировать из CSV файла, из списка пользователей MODX, групп пользователей MODX и добавление в ручную
  • Сегменты — создание сегментов для добавление подписчиков. При создании рассылки выбираются получатели находящиеся в сегменте
  • Отписавшиеся — это список с e-mail адресами которые отписались
  • Рассылки — создание рассылок для подписчиков с возможностью настроить индивидуальные шаблоны писем и системой автоматической статистики по запущенной рассылки.
  • Отчет рассылок — статистика по отправленным письмам с фильтрами и статистикой о действиях пользователей, таких как:
    • Прочитали — получатель прочел письмо
    • Открыли — переход по ссылке из письма
    • Отписались — отписка из письма
    • Отказы — отскоки доставки сообщений
    • Ошибки отправки — ошибки во время отправки сообщений
  • Ошибки доставки — список e-mail адресов с отскоками доставки сообщений
  • Транспорт отправителя — настройки для отправки писем с вашего сервера или SMTP, с возможность задать интервал отправки сообщений и количества писем в 1,2,3,5,10,15,30 минут
  • Обратный путь — настройки POP3 соединения откуда будут забираться отскоки и записывается в списке с ошибками доставки

Заказы minishop


В настройках возможно включить параметры minishop2_status_change чтобы все сообщения из minishop2 проходили через bxSender.
После включения в списке заказов мы увидим наши сообщения, а так же можем посмотреть их содержимое и состоянию отправки.


В списке сообщений отображается:
  • Кому — менеджеру или пользователю
  • Статус заказа — указывается на каком статусе было отправлено это сообщение
  • Состояние отправки — sent — отправлено, error — произошла ошибка во время отправки
  • Создан — дата создания сообщения
  • Действия — посмотреть сообщение



Статистику по отправки сообщений вы можете все так же посмотреть в разделе компонента Отчеты рассылок



Дополнительно добавлены настройки для:
bxsender_do_not_send_messages — при включении сообщения будут попадать в очереди, и не будет отправлять на e-mail

Быстрый старт


Все основные моменты есть в видео инструкции.
Под видео размещены необходимые сниппеты для управления с фронтенда.



Бесплатный конструктор шаблонов писем


С помощью этого сервиса вы можете создать нужный шаблон, экспортировать его в html и подключить в компонент для дальнейшей рассылки: https://stripo.email/ru/

Сниппеты для управления подпиской


Сниппет с формами работают через сниппет AjaxForm.

Подписка на рассылку

сниппет выводит форму для создание новых подписок с возможностью указать E-mail, Имя и выбрать сегменты на которые разрешено подписываться пользователю.
[[!bxSubscribe]]

Восстановление доступ

сниппет выводит формы с полем e-mail, для отправки письма со ссылкой на управление подпиской
[[!bxSubscribeRestore]]

Управление подпиской

сниппет выводит формы где возможно изменить Имя, сегменты и статус подписки (Отписан или Подписан). Доступ к этой форме возможно получить только из письма или через восстановление доступа.
[[!bxSubscribeManager]]

Внимание, по умолчанию используется системная страница, но вы можете указать ID страницы в настройках bxsender_page_confirmationemail и разместить туда сниппет.

Подтверждение E-mail

Сниппет проверяет hash в URL и активирует E-mail адрес для рассылки.
[[!bxSubscribeConfirmation]]

Внимание, по умолчанию используется системная страница, но вы можете указать ID страницы в настройках bxsender_page_confirmationemail и разместить туда сниппет.

Правила NGINX/APACHE для прочтения


Это правило нужно для того чтобы можно было отследить статистику по прочитанным сообщениям.
location ~ ^/assets/components/bxsender/action/open/.*\.(png)$ {
    rewrite ^/assets/components/bxsender/action/open/(.*)$ /assets/components/bxsender/action/open/index.php?queue_hash=$1&$args last;
}

### Код выше должен быть добавлен выше этой строки. Иначе вся статистика сразу будет заблокирована и прочтения не будут учитыватся
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp|ttf|woff|woff2|svg)$ {
  ........


Дополнительные возможности


  • Добавление сегментов и возможность подписываться на них с фронтенда
  • Импорт подписчиков в выбранный сегмент и файла csv, в ручную и из modx
  • Управление количество отправляемых сообщений в заданном интервале времени (для того чтобы рассылка не выглядела как спам)
  • Отправка сообщений через: SMTP, ваш сервер или через системные настройки MODX
  • Добавление в очередь сообщений из других сервисов для отслеживания статистики (например можно добавлять сообщения из компонента Sendex)

Рассылка
  • Удобный просмотр шаблонов прям из списка
  • Создание не ограниченного количества рассылок, с выбором интересующих сегментов
  • Тестирование отправки сообщений на e-mail адрес чтобы видить как будет выглядеть письмо
  • Удобная визуальная шкала рассылки в процентах и количество разосланных писем
  • Cron задание не обязательно. Рассылка происходит за счет переодических запросов на ajax
  • Возможность отложить рассылку до выбранной даты и времени
  • Возможность поставить на паузу, чтобы продолжить рассылку пузже
  • Возможность копировать рассылку и убирать в не активные


Внимание!!! Статистика по рассылки формируется по степени прочтения и открытий писем пользователями. К примеру если вы завершил рассылку час назад, не стоит ожидать что все те, кому вы отправили письмо моментально прочтут вашу почту. Зайдите проверить статистику хотябы через 6 часов после рассылки.

Статистика писем
  • Прочитано — при открытии письма пользователе в почтовом клиент, информация об открытии автоматически передается в компонент
  • Открыли — каждая ссылка заменяется на страницу компонента за счет чего мы можем отслеживать количество переходов из письма (все ссылка в письме автоматически заменяются)
  • Ошибка доставки — получение статистики по не отправленным письмам, с последующей блокировкой email адрес после нескольких ошибок отправки
  • Отказы — в случае если email подписчика уже отписывается от рассылки или у него произошла ошибка доставки, то ему автоматически устанавливается этот статус и письмо не отправляется
  • Возможность просматривать каждое отправленное сообщение, чтобы видить что именно было отправлено пользователю


Шаблон сообщения
  • Подключаемые шаблоны из файл через pdoTools
  • Поддержка CSS в шаблоне рассылок
  • Уникальный плейсхолдеры подписчика и пользователя (если он зарегистрирован)
  • Добавление UTM меток к ссылкам в письме для ведения статистики в Яндекс метрике и Google анадитикс
  • Открытие шаблона сообщения в браузере, где можно выполнять верстку этого сообщения

Подписка на рассылку во время создания заказа minishop2


Чтобы автоматически создавалась подписка при оформлении заказа через minishop2 необходимо в настройках указать bxsender_minishop_order_subscribe ID сегментов на которые будет подписан пользователь.
И добавить в чанк с формой оформления заказа код
<form>
.......................
<div class="row">
        <div class="col-12 col-md-12" >
                <div class="form-group row">
            	<label class="col-sm-3 control-label">Рассылка</label>
            	<div class="col-sm-9">
            	    <input type="checkbox" class="subscribe" name="subscribe" id="subscribe" value="1" checked onchange="this.checked ? $(this).val(1): $(this).val(0)">
            		<em>Согласен на получение новостей и других рассылок</em>
            		<p class="help-block message"></p>
            	</div>
            </div>
        </div>
    </div>
.......................
</form>

Плагин будет срабатывать на событие msOnGetOrderCustomer и создавать нового подписчика сотправкой формы подтверждения подписки на рассылку.

Создание подписки при регистрации


Вы можете автоматически подписывать пользователей при регистрации на сайте просто добавив в форму вот такой код:

// Office
<form>
.........
<div class="form-group row">
    <label class="col-sm-3 control-label">Рассылка</label>
	<div class="col-sm-9">
		[[!bxSubscribeSegments? &tpl=`office.tpl.bxSender.Segments`]]
		<em>Вы можете подписаться на рассылку наших новостей</em>
		<p class="help-block message"></p>
	</div>
</div>
.........
</form>

Шаблон office.tpl.bxSender.Segments

{if count($segments) > 0}
    {foreach $segments as $segment}
        <div class="checkbox checkbox-success">
            <label for="segments-{$segment['id']}">
                <input type="checkbox" class="segments" name="extended[bxsender][segments][{$segment['id']}]" id="segments-{$segment['id']}" value="1" {if $segment['checked'] == 'checked'}checked{/if}>
                {$segment['name']}{if $segment['description']}{/if}
            </label>
        </div>
    {/foreach}
{else}
    У нас нет активных подписок
{/if}

Перед сохранением пользователя, на событии OnUserBeforeSave при наличии в запросе:
$_REQUEST['extended']['bxsender']['segments'] = array(
    1 => 1 // Ключ это id сегмента, значение отметка выбранного сегмента
    5 => 1
)
в дополнительные поля профиля в extended
будут добавлены выбранные сегменты.

Во время активации E-mail адрес, для пользователя будет создана подписка с выбранными сегментами.
если подписка уже существовала то она автоматически привяжется к пользователю и переопределяются сегменты подписки

Список подписок в личном кабинете


[[!bxSubscriptions]] выводит список подписок в личном кабинете для авторизованных пользователей
<div class="row">
    <div class="col-md-12">
        Список подписок
        <div id="pdopage">
            <div class="rows">
                [[!pdoPage?
                    &element=`bxSubscriptions`
                    &ajaxMode=`default`
                ]]
            </div>
            [[!+page.nav]]
        </div>
    </div>
</div>


Сервисы для тестирования


Несколько сервисов для тестирования качества вашего сообщения и отправителя

https://www.mail-tester.com/ — класный сервис но дает отправить в сутки только 3 сообщения
https://dkimvalidator.com/ — проверка ваших SPF, DKIM и на SpamAssassin
https://mxtoolbox.com/dkim.aspx — проверка DKIM
https://toolbox.googleapps.com/apps/checkmx/ — проверка от google

1.0.25-pl

  • Исправлены баг импорта пользователей

Последние обсуждения в сообществе MODX.pro