
Как сделать email-рассылку в MODX Revolution
MODX Revolution — мощная CMS с высокой гибкостью. Она не имеет встроенного инструмента для email-рассылок "из коробки", но предлагает широкий выбор подходов благодаря своей модульной архитектуре. В этой статье рассмотрим основные способы организации email-рассылки на MODX, включая установку дополнений, создание шаблонов писем и настройку отправки.
1. Выбор подхода к рассылке
В MODX Revolution можно реализовать рассылку:
- Через сторонние дополнения (например, FormIt, Subscribe, MailgunX)
- Через интеграцию со внешними сервисами (Mailchimp, UniSender и др.)
- Через собственную систему на базе сниппетов и phpmailer
2. Использование дополнения Subscribe
Шаг 1. Установка через Package Manager
- Зайдите в Package Manager (
Extras > Installer
). - Найдите и установите пакет Subscribe.
- Установите также 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-скрипт, который:
- Забирает email-адреса из БД или файла CSV
- Генерирует письмо на основе шаблона
- Отправляет письма по очереди (например, ограничив до 50 писем за запуск)
- Запускается по cron
Это удобно для регулярных рассылок, например — новостей.
5. Альтернатива — внешние сервисы
Если вы хотите меньше заботиться о доставке и логике, можно использовать:
- Mailchimp
- UniSender
- SendPulse
- MailerLite
В MODX подключаются через API: создайте форму подписки, отправляющую данные через curl
или JavaScript в сторонний сервис.
Заключение
Email-рассылка в MODX Revolution может быть организована как через внутренние дополнения, так и через сторонние сервисы. Для простых задач достаточно установить Subscribe
, а для сложных и массовых рассылок лучше использовать внешние решения или собственную реализацию с cron и phpmailer.
Если вы планируете часто использовать email-рассылку, рекомендуется хранить адреса пользователей в отдельной таблице и добавить функцию отписки — это повысит надежность и соответствие требованиям GDPR.
Комментарии ()