В этом руководстве вы узнаете, как установить Mailtrain v2 на Ubuntu 20.04 без использования Docker. Mailtrain — это открытое приложение для email-рассылок, которое можно настроить самостоятельно, предоставляя альтернативу коммерческим сервисам, таким как Mailchimp. С помощью Mailtrain вы сможете отправлять электронные письма своим подписчикам, используя свой собственный почтовый сервер или любой SMTP-ретранслятор, например Sendinblue, SendGrid, Amazon SES, Mailgun и другие.
Mailtrain доступен под лицензией GPL v3.0 и разработан с использованием Node.js и MySQL/MariaDB. Актуальная версия — v2, которая вышла в июне 2021 года. Ключевые функции Mailtrain включают:
- Обеспечивает простое управление масштабными списками рассылки, такими как, например, миллион подписчиков.
- Существует возможность добавления подписчиков вручную, с помощью API или импортируя данные из CSV-файла.
- Поддерживает индивидуальные поля (текстовые, числовые, выпадающие списки и чекбоксы), метки слияния и настраиваемые формы.
- Разделение списков на сегменты.
- RSS-кампания: автоматическое создание рассылки на основе RSS-ленты и её отправка подписчикам.
- Подписчики имеют возможность загружать свои открытые ключи GPG, после чего Mailtrain будет шифровать для них рассылки.
- Предоставляет возможность отслеживать показатели открываемости и кликов, видеть, кто открыл ваше сообщение, а также получать индивидуальную статистику кликов для каждой ссылки. Кроме того, вы можете анализировать эти данные по странам.
- Усовершенствованные редакторы шаблонов писем и редактор HTML-кода.
- Автоматизация: отправка заданных писем по мере активации пользователем установленного триггера.
- Вы можете сформировать открытый список рассылки, который позволяет подписываться всем желающим, или закрытый список, где подписчики добавляются только по решению администратора.
- Формирование нескольких учетных записей с детализированными разрешениями и адаптивным обменом.
- Иерархические структуры имен для бизнес-обстановки.
- Индивидуальная настройка интерфейса пользователя для каждого пользователя.
- Экспорт данных в виде списков
- Опция отправки на несколько списков с исключением повторной доставки.
- Разные варианты настройки отправки.
- Контроль за отправкой через SMTP поможет избежать одновременной массовой рассылки электронных писем, что повысит их доставляемость.
- Если вам требуется отправлять письма с максимальной скоростью, просто настройте Mailtrain на количество процессов отправки, соответствующее вашим потребностям, при условии, что на сервере достаточно ресурсов ЦП и оперативной памяти.
Содержание статьи
- 1 Определение подходящего хостинг-партнера.
- 2 Настройка базы данных и учетной записи пользователя для Mailtrain.
- 3 Инсталляция Node.js
- 4 Настройка кэширования с помощью Redis
- 5 Конфигурация обратного прокси
- 6 Активируйте HTTPS.
- 7 Настройка Mailtrain
- 8 Управление аккаунтами и ролями пользователей.
- 9 Решение проблемы с уведомлением “Приветствие не было получено”
- 10 Устранение проблемы с загрузкой файла.
- 11 Запрос завершился неудачей с кодом состояния 413.
- 12 Обработка уведомлений о недоставленных сообщениях в Mailtrain
- 13 Заключение
Определение подходящего хостинг-партнера.
Самостоятельный хостинг может значительно снизить ваши расходы. Mailtrain — это бесплатное и открытое ПО. Вам нужно лишь платить примерно $20 в месяц за VPS (виртуальный частный сервер), который способен запустить полноценный почтовый сервер и платформу email-маркетинга Mailtrain. Эта система без проблем справляется с миллионами подписчиков. Таким образом, ваши ежемесячные расходы всегда останутся на уровне $20, независимо от количества подписчиков. В то время как на MailChimp, имея миллионы подписчиков, вы будете тратить тысячи долларов в месяц.
Выбор подходящего провайдера VPS (виртуального частного сервера) для хостинга электронной почты и email-маркетинга может оказаться сложной задачей. Многие компании, например, DigitalOcean, ограничивают доступ к порту 25. Учитывая, что DigitalOcean не разблокирует этот порт, вам придется настроить SMTP-ретрансляцию, что может привести к дополнительным затратам. У Vultr порт 25 также заблокирован по умолчанию. Хотя вы можете попросить службу поддержки разблокировать его, есть вероятность, что доступ будет ограничен снова, если будет замечена подозрительная активность, связанная с отправкой почты. На практике Vultr может вновь ограничить доступ, если вы используете их серверы для рассылки информационных бюллетеней.
Еще одной сложностью является то, что популярные хостинг-провайдеры, такие как DigitalOcean и Vultr, становятся жертвами злоупотреблений со стороны спамеров. В результате IP-адреса их серверов нередко оказываются в различных черных списках. Например, у Vultr существуют целые диапазоны IP-адресов, которые уже занесены в такие списки.
Kamatera представляет собой отличное решение для организации почтового сервера, поскольку
- Порт 25 не заблокирован, поэтому вы можете отправлять любое количество писем, включая транзакционные и информационные бюллетени, без дополнительных расходов на службу SMTP-ретрансляции. Kamatera не накладывает ограничений на использование SMTP, позволяя отправлять до миллиона писем в сутки.
- IP-адрес не значится ни в одном из списков черных адресов электронной почты. (По крайней мере, так обстоят дела в моем случае. Я выбрал дата-центр в Далласе.) Определенно, не стоит оказываться в известном черном списке IP Microsoft Outlook или в списке spamrats. Некоторые черные списки могут блокировать целые диапазоны IP, и в таком случае у вас не будет возможности исключить свой адрес из этого списка.
- Для улучшения доставки электронной почты можно изменить PTR-запись.
- Они дают возможность отправлять информационные рассылки вашим подписчикам по электронной почте без каких-либо ограничений по времени.
- Вы можете заказать несколько IP-адресов для одного сервера. Это особенно полезно для пользователей, которым требуется.
Информация о ваших подписчиках будет сохранена в базе данных. Mailtrain совместим с MySQL и MariaDB. MariaDB представляет собой альтернативу MySQL и была создана бывшими разработчиками MySQL, которые переживают, что Oracle может сделать MySQL закрытым продуктом. Теперь приступим к установке сервера базы данных MariaDB.
Для установки MariaDB на Ubuntu 20.04 введите следующую команду.
sudo apt install mariadb-server mariadb-client
После установки сервер MariaDB должен запуститься автоматически. Для проверки его состояния используйте команду systemctl.
systemctl status mariadb
●mariadb.service - сервер базы данных MariaDB версии 10.3.22. Статус: загружен (/lib/systemd/system/mariadb.service; включён; предустановка поставщика: активна). Текущий статус: активен.энергично (функционирует) с Пт 2020-04-10 14:19:16 UTC; 18 секунд назад Документы: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Основной PID: 9161 (mysqld) Статус: "Принимаю ваши SQL-запросы." Задачи: 31 (лимит: 9451) Память: 64.7M CGroup: /system. slice/mariadb.service └─9161 /usr/sbin/mysqld
Если он не запускается, попробуйте активировать его с помощью следующей команды:
sudo systemctl start mariadb
Чтобы настроить автоматический запуск MariaDB при загрузке системы, выполните следующие шаги:
sudo systemctl enable mariadb
Теперь после установки выполните сценарий безопасности.
sudo mysql_secure_installation
Когда вам предложат ввести пароль root для MariaDB, просто нажмите Enter, так как пароль ещё не задан. После этого введите y, чтобы задать новый пароль root для сервера MariaDB.

Вы можете нажать Enter, чтобы ответить на все последующие вопросы. Это приведет к удалению анонимного пользователя, отключению удаленного доступа для пользователя root и удалению тестовой базы данных. Данный этап является ключевым для обеспечения безопасности базы данных MariaDB. Учтите, что буква Y написана с заглавной буквы, что указывает на выбор по умолчанию.

Настройка базы данных и учетной записи пользователя для Mailtrain.
Для входа в консоль MariaDB выполните следующую команду.
sudo mysql - u root
Создайте базу данных для Mailtrain, выполнив следующую команду. Я выбрал название mailtrainv2, но вы можете выбрать любое другое имя по своему усмотрению. (Не забудьте добавить точку с запятой.)
create database mailtrainv2;
После этого введите следующую команду для создания пользователя базы данных для Mailtrain и предоставления ему всех прав доступа к базе данных mailtrain. Замените mailtrain и mailtrain_password на желаемое имя пользователя и пароль.
grant all privileges on mailtrainv2mailtrain@localhost был идентифицирован по 'mailtrain_password';
Обновите таблицу прав доступа, чтобы изменения начали действовать, а затем закройте консоль MariaDB.
flush privileges; exit;
Инсталляция Node.js
Mailtrain работает на базе Node.js — среды выполнения JavaScript, преобразующей понятный человеку код в машинный. Для запуска Mailtrain на Ubuntu необходимо установить Node.js. Версия Mailtrain v2 требует Node.js версии 14 или выше. В данном руководстве мы установим Node.js и менеджер пакетов (npm) из стандартного репозитория.
curl - sL https://deb. nodesource.com/setup_14.x | sudo - E bash - sudo apt install nodejs - y
Чтобы узнать версию Node.js и npm, используйте команду.
node - v npm - v
Учтите, что я не советую устанавливать последнюю LTS-версию Node.js (v16) из репозитория nodesource.com, так как она плохо совместима с Mailtrain v2. Для компиляции и установки нативных дополнений из npm вам также понадобятся инструменты для сборки:
sudo apt install - y build-essential
Для редактирования изображений в шаблонах электронной почты и HTML-редакторах необходимо установить ImageMagick.
sudo apt install imagemagick
Настройка кэширования с помощью Redis
Для кэширования сеансов можно настроить сервер Redis. Это даст возможность Mailtrain работать с пятью процессами вместо одного, что значительно повысит скорость отправки писем при большом количестве подписчиков. Учтите, что это приведет к увеличению потребления памяти примерно на 250 МБ.
sudo apt install redis - y
После установки Redis должен автоматически начать работу. Состояние службы можно проверить командой:
В данном файле вы можете внести изменения, которые заменят стандартные настройки, указанные в файле по умолчанию.~В файл
/mailtrain/server/config/default. yaml
необходимо внести только следующие параметры конфигурации. Убедитесь, что после каждого двоеточия стоит пробел.
user: mailtrain group: mailtrain roUser: nobody roGroup: nobody www: host: 127.0.0.1 proxy: true secret: "Замените это на произвольные символы.Доверенная база URL: http://mailtrain. example.comБазовый URL для песочницы: http://sbox-mailtrain. example.comОбщедоступный URL: http://newsletter. example.comMySQL: пользователь:mailtrain password: mailtrain_password database: mailtrainv2 redis: enabled: true log: level: info builtinZoneMTA: enabled: false queue: processes: 5
Mailtrain требует использования трёх URL-адресов.
- mailtrain. example.com: Надежный URL, который используют пользователи, прошедшие регистрацию.
- sbox-mailtrain. example.com: предназначен для размещения редакторов шаблонов и не виден пользователям.
- newsletter. example.com: Открытый URL, доступный для просмотра пользователям.
Сохраните и закройте файл. После этого создайте пользователя и группу с именем mailtrain, которые будут использоваться для работы демона mailtrain. Учтите, что пароль для этого пользователя не требуется, поэтому мы создаем его как системного пользователя, а не как обычного.
sudo adduser --system --group --no-create-home mailtrain
Подготовьте файл настроек для процесса генерации отчетов.
nano ~/mailtrain/server/services/workers/reports/config/production. yaml
Добавьте указанные настройки.
log: level: warn mysql: user: mailtrain password: mailtrain_password database: mailtrainv2
Сохраните изменения и закройте документ.
Теперь проверьте, что вы находитесь в нужной папке.~/mailtrain/.
cd ~/mailtrain
Установите нужные пакеты для Node.js. Для этого выполните одну команду. Не используйте sudo.
for idx in client shared server mvis/client mvis/server mvis/test-embed mvis/ivis-core/client mvis/ivis-core/server mvis/ivis-core/shared mvis/ivis-core/embedding; do (cd $idx && npm install && npm audit fix) done
Если вам придет данное сообщение об ошибке, можете не обращать на него внимания.
-bash: cd: mvis/ivis-core/client: Нет такого файла или директории - bash: cd: mvis/ivis-core/server: Нет такого файла или директории - bash: cd: mvis/ivis-core/shared: Нет такого файла или директории - bash: cd: mvis/ivis-core/embedding: Нет такого файла или директории
Перейдите в папку.~/mailtrain/client/.
cd ~/mailtrain/client
Соберите наборы пакетов node.
npm run build
Переместите папку mailtrain в директорию /var/www/.
sudo mkdir - p /var/www/ cd ~
sudo cp
~/mailtrain /var/www/mailtrainv2 - r
Затем необходимо изменить права доступа для каталога /var/www/mailtrainv2/.
sudo chown mailtrain:mailtrain /var/www/mailtrainv2/ - R sudo chmod o-rwx /var/www/mailtrainv2/server/config/
Подготовьте файл юнитов для службы systemd, предназначенный для mailtrain.
sudo nano /etc/systemd/system/mailtrainv2.service
Включите указанные строки в данный файл.
[Unit] Description=Mailtrain server After=syslog. target network. target mariadb.service redis-server.service [Service] Environment="NODE_ENV=production" WorkingDirectory=/var/www/mailtrainv2/server ExecStart=/usr/bin/node index. js Type=simple Restart=always RestartSec=10 [Install] WantedBy=multi-user. target
Сохраните файл и закройте его. После этого запустите службу mailtrainv2.service.
sudo systemctl enable --now mailtrainv2.service
Проверьте его текущее состояние. Убедитесь, что он функционирует.
sudo systemctl status mailtrainv2.service
● mailtrainv2.service - Сервер Mailtrain успешно загружен: файл конфигурации (/etc/systemd/system/mailtrainv2.service) активирован и включён, поставщик предустановлен. Статус: активен.действует (функционирует) с Пн 2021-11-01 16:42:10 HKT; 8 секунд назад Основной PID: 2794663 (mailtrain) Задачи: 25 (лимит: 15514) Память: 258.0M CGroup: /system. slice/mailtrainv2.service ├─2794663 mailtrain ├─2794693 mailtrain: исполнитель задач └─2794701 /usr/bin/node /var/www/mailtrainv2/server/services/importer. js
Если он не функционирует, попробуйте ознакомиться с журналом.
sudo journalctl - eu mailtrainv2
Если служба mailtrainv2 работает, вы можете узнать, какие порты она использует, выполнив следующую команду.
sudo netstat - lnpt | grep mailtrain
Конфигурация обратного прокси
Для настройки обратного прокси можно воспользоваться веб-серверами Nginx или Apache.
Nginx
При использовании iRedMail рекомендуется выбрать Nginx.
Настройте веб-сервер Nginx.
sudo apt install nginx
Настройте три виртуальных хоста в Nginx для трёх различных URL-адресов.
sudo nano /etc/nginx/sites-enabled/mailtrain. example.comsudo nano /etc/nginx/sites-enabled/.confsbox-mailtrain. example.comsudo nano /etc/nginx/sites-enabled/.confnewsletter. example.com.conf
Содержимое трёх файлов выглядит следующим образом:
mailtrain. example.com.conf
server < listen 80; server_name mailtrain. example.com
access_log /var/log/nginx/mailtrain. access; error_log /var/log/nginx/mailtrain. error; client_max_body_size 200M; location /








