Как сделать email-рассылку в MODX Revolution

Как сделать email-рассылку в MODX Revolution

MODX Revolution — мощная CMS с высокой гибкостью. Она не имеет встроенного инструмента для email-рассылок "из коробки", но предлагает широкий выбор подходов благодаря своей модульной архитектуре. В этой статье рассмотрим основные способы организации email-рассылки на MODX, включая установку дополнений, создание шаблонов писем и настройку отправки.

1. Выбор подхода к рассылке

В MODX Revolution можно реализовать рассылку:

  • Через сторонние дополнения (например, FormIt, Subscribe, MailgunX)
  • Через интеграцию со внешними сервисами (Mailchimp, UniSender и др.)
  • Через собственную систему на базе сниппетов и phpmailer

2. Использование дополнения Subscribe

Шаг 1. Установка через Package Manager

  1. Зайдите в Package Manager (Extras > Installer).
  2. Найдите и установите пакет Subscribe.
  3. Установите также FormIt и Quip (они могут потребоваться для работы подписок и форм).

Шаг 2. Создание формы подписки

Создайте сниппет, например, , и разместите его на странице. Пример формы:

[[!FormIt?
  &hooks=`subscribe,email`
  &emailTpl=`SubscribeEmailTpl`
  &emailTo=`[[+email]]`
  &emailSubject=`Спасибо за подписку!`
  &validate=`email:required:email`
]]

<form method="post">
  <input type="text" name="email" placeholder="Введите ваш email" />
  <input type="submit" value="Подписаться" />
</form>

Создайте чанк SubscribeEmailTpl с текстом письма для подтверждения или приветствия.

Шаг 3. Работа со списками рассылок

Вы можете настроить рассылки по зарегистрированным email через панель управления или программно — с помощью создания задач (cron), сниппетов и вызова mail() или PHPMailer.

3. Отправка email вручную (через сниппет)

Если нужно отправить письмо вручную по действию пользователя или cron-задаче:

<?php
$modx->getService('mail', 'mail.modPHPMailer');

$modx->mail->set(modMail::MAIL_BODY, 'Текст письма');
$modx->mail->set(modMail::MAIL_FROM, 'noreply@yourdomain.com');
$modx->mail->set(modMail::MAIL_FROM_NAME, 'Ваш сайт');
$modx->mail->set(modMail::MAIL_SUBJECT, 'Тема письма');
$modx->mail->address('to', 'user@example.com');
$modx->mail->setHTML(true);

if (!$modx->mail->send()) {
    return 'Ошибка отправки: '.$modx->mail->mailer->ErrorInfo;
}
$modx->mail->reset();

4. Массовая рассылка (cron + CSV/БД)

Вы можете создать сниппет или PHP-скрипт, который:

  1. Забирает email-адреса из БД или файла CSV
  2. Генерирует письмо на основе шаблона
  3. Отправляет письма по очереди (например, ограничив до 50 писем за запуск)
  4. Запускается по cron

Это удобно для регулярных рассылок, например — новостей.

5. Альтернатива — внешние сервисы

Если вы хотите меньше заботиться о доставке и логике, можно использовать:

  • Mailchimp
  • UniSender
  • SendPulse
  • MailerLite

В MODX подключаются через API: создайте форму подписки, отправляющую данные через curl или JavaScript в сторонний сервис.

Заключение

Email-рассылка в MODX Revolution может быть организована как через внутренние дополнения, так и через сторонние сервисы. Для простых задач достаточно установить Subscribe, а для сложных и массовых рассылок лучше использовать внешние решения или собственную реализацию с cron и phpmailer.

Если вы планируете часто использовать email-рассылку, рекомендуется хранить адреса пользователей в отдельной таблице и добавить функцию отписки — это повысит надежность и соответствие требованиям GDPR.

Если вы не видите кнопку "Скачать"
отключите блокировщик рекламы

Комментарии ()

    Не то, что искали? Воспользуйтесь поиском