Сервис массовых и транзакционных e-mail рассылок kennwort.ru

@devrusspace  . февраль 2022

Golang  Yii2  MongoDB  MySQL  RestAPI  


При работе над собственными проектами или заказами, часто возникает необходимость отправлять email сообщения. При выборе сервиса для триггерных e-mail рассылок, важно учитывать не только возможности управления шаблонами писем, но и качество доставки, техническую поддержку, стоимость услуг и другие параметры, важные для конкретного проекта.

Мы учли все эти факторы при создании нашего собственного сервиса по транзакционным рассылкам.

Мы разработали сервис, который обеспечивает максимально быстрый отклик и использует систему layout для транзакционных писем.

― бесплатный тариф для 300 уникальных получателей

Что такое — транзакционные письма?

Транзакционные e-mail сообщения (transaction e-mails) — это электронные сообщения, которые отправляются в автоматическом режиме в ответ на какое-либо действие пользователя. Они могут быть использованы для уведомления пользователей о статусе их заказов, подтверждения регистрации, восстановления пароля и т.д.

Чтобы использовать транзакционные e-mail сообщения, вам нужно:

  1. Определить цель сообщения: какое действие вы хотите проинформировать пользователя.
  2. Разработать содержание сообщения: указать информацию, которую хотите передать, а также убедитесь, что оно ясно и понятно для пользователя.
  3. Настроить систему отправки сообщений: вы можете использовать специальные сервисы для отправки e-mail сообщений, например, Mailchimp, Sendin.

Существует множество типов транзакционных e-mail сообщений, включая:

  • Подтверждение регистрации: отправляется пользователю после успешной регистрации на сайте.
  • Подтверждение заказа: отправляется пользователю после успешной оплаты заказа.
  • Уведомление об изменении статуса заказа: отправляется пользователю в случае изменения статуса заказа (например, «отправлен»).
  • Напоминания о действиях, такие как напоминание о неоплаченном счете или оставленной корзине товаров
  • Восстановление пароля: отправляется пользователю в случае запроса на восстановление пароля.
  • Уведомление о новых услугах или продуктах: отправляется пользователю для информирования о новых предложениях.
  • Уведомление об окончании подписки: отправляется пользователю для напоминания об окончании срока действия подписки.
  • Персонализированные рекомендации или предложения на основе предыдущих покупок или действий пользователей

Какие варианты существуют по отправке транзакционных писем?

Существует два основных варианта для отправки транзакционных писем:

  • использование собственного SMTP-сервера
  • использование сторонних сервисов

Если вы решите использовать свой SMTP-сервер, то вам придется установить и настроить программное обеспечение на сервере, настроить DNS-записи, обеспечить безопасность и надежность сервера, а также отслеживать метрики, связанные с доставкой писем и прочими показателями.

Использование сторонних сервисов, например, SendGrid, Mailchimp, Amazon SES, Mandrill и др., может значительно упростить процесс отправки транзакционных писем. Такие сервисы предоставляют готовые решения для отправки писем, обеспечивают надежность доставки, мониторинг метрик и другие функции. Однако, использование сторонних сервисов может стоить денег и ограничивать некоторые возможности по настройке и управлению отправкой писем.

При выборе между использованием своего сервера или стороннего сервиса, следует учитывать требования вашего проекта, объем и частоту отправки писем, наличие и квалификацию необходимых ресурсов для поддержки своего SMTP-сервера, а также наличие бюджета для использования платных сторонних сервисов.

Наше решение

Используем шаблонизатор Twig

Для формирования шаблонов писем мы используем Twig — инструмент, который позволяет удобно работать с переменными, циклами и условиями внутри шаблона.

Благодаря использованию Twig, мы можем подставлять в письма динамические данные, такие как имя получателя, ссылки или даты. Кроме того, мы можем использовать циклы для формирования списков товаров, условия для скрытия или отображения различных блоков письма в зависимости от контекста.

Также Twig поддерживает наследование шаблонов, что облегчает процесс создания и обновления шаблонов.

Использование шаблонизатора Twig позволяет нам создавать более гибкие и динамичные шаблоны писем, которые могут адаптироваться к различным условиям и контекстам.

Функция предпросмотра письма:
возможность увидеть, как будет отображаться письмо в списке входящих

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

Интерфейс добавления рассылки.

Общие layout для шаблонов

Для создания шаблонов писем в рассылке мы используем технику layout-шаблонов.

Эта техника предполагает разделение шаблона на несколько частей, таких как шапка, подвал и т.д., и использование этих частей в различных шаблонах.

Таким образом, мы можем создавать шаблоны с одинаковой шапкой и подвалом, но с разным содержимым, в зависимости от тематики или цели письма.

Layout-шаблоны позволяют значительно упростить процесс создания и обновления шаблонов, так как изменения, внесенные в общие части, автоматически применяются к всем связанным шаблонам.

Это делает процесс создания и обновления шаблонов более быстрым, удобным и эффективным.

В шаблонах e-mail можно использовать функционал шаблонизатора Twig.

Доставляемость писем

Наш веб-интерфейс предоставляет возможность добавить ваш домен, создать новое имя отправителя и получить инструкции по добавлению dkim и spf подписи для вашего домена. Это позволит гарантировать доставку писем, отправляемых через наш сервис, вашим получателям.

Управление вашими настройками легкое и интуитивно понятное. Вы можете легко настроить и изменить свои настройки домена и отправителя в любое время.

Добавление dkim и spf подписей гарантирует, что ваше письмо будет проходить проверку подлинности при прохождении через различные почтовые сервера, что снижает вероятность того, что ваше письмо попадет в спам-фильтр или не будет доставлено вовсе.

REST API

Мы создали REST API для взаимодействия с нашим сервисом рассылки email сообщений.

REST API обеспечивает стандартизированный интерфейс, позволяющий пользователям отправлять email сообщения через наш сервис, проверять статус отправленных сообщений и получать историю отправленных сообщений.

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

Использование REST API упрощает разработку клиентских приложений, так как позволяет использовать стандартные протоколы и форматы передачи данных, что уменьшает время разработки и улучшает качество программного кода.

Composer-модуль для php

Пример подключения:

<?php
$token = 'токен_вашего_приложения_сгенерированный_в_личном_кабинете';
$client = new \Devrusspace\Kennwort\ApiClient($token);
                    

Пример отправки письма подписчику на основе шаблона:

<?php
$template = 'user/registration';
$mailTo = ['[email protected]' => 'Имя получателя'];
$params = ['var1' => 'значение переменной для подстановки в шаблон'];

$result = $client->sendEmail($template, $mailTo, $params);

$emailId = $result->email->id; // идентификатор отправленного сообщения
                    

Подробная инструкция на github: https://github.com/devrusspace/kennwort-email-sender

Composer-модуль для yii2 framework

<?php
return [
    'components' => [
        'kennwort' => [
            'class' => 'Devrusspace\KennwortYii2\ApiClient',
            'token' => 'ваш_токен_созданный_в_личном_кабинете',
            'defaultSenderId' => 'идентификатор_email_из_вашего_списка_отправителей',
        ],
    ]
];
                    

Пример отправки письма подписчику на основе шаблона:

<?php
$template = 'user/registration';
$mailTo = ['[email protected]' => 'Имя получателя'];
$params = ['var1' => 'значение переменной для подстановки в шаблон'];

$result = Yii::$app->kennwort->sendEmail($template, $mailTo, $params);

$emailId = $result->email->id; // идентификатор отправленного сообщения
                    

Подробная инструкция на github: https://github.com/devrusspace/yii2-kennwort-email-sender

Мы добавляем автоматически подписи SPF и DKIM во все письма для повышения их доставляемости.

Используемые технологии

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

  • Основа приложения: Yii2
  • База данных из кластеров MySQL, MongoDB
  • Сервис очередей Yandex Message Queue
  • Объектное хранилище Yandex Object Storage
  • Обработчик-рассыльщик на Golang

Нужно решение,
для вашей компании?

Напишите! Назначим встречу и обсудим ваш проект.