Инструкция по установке Mailtrain v2 на сервер под управлением Ubuntu 20.04

В этом руководстве вы узнаете, как установить 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 на количество процессов отправки, соответствующее вашим потребностям, при условии, что на сервере достаточно ресурсов ЦП и оперативной памяти.

Установка Mailtrain v2 на сервер Ubuntu 20.04: пошаговая инструкция.

Определение подходящего хостинг-партнера.

Самостоятельный хостинг может значительно снизить ваши расходы. 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.

ubuntu-20.04-install-LAMP-stack-MariaDB

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

Install-LAMP-stack-on-Ubuntu-20.04-MariaDB-Database-server

Настройка базы данных и учетной записи пользователя для 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 /

nginx< proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >>

sbox-mailtrain. example.com

server < listen 80; server_name sbox-mailtrain. example.com

access_log /var/log/nginx/sbox-mailtrain. access; error_log /var/log/nginx/sbox-mailtrain. error; location /

Логи доступа записываются в /var/log/nginx/sbox-mailtrain. access, а логи ошибок — в /var/log/nginx/sbox-mailtrain. error; директива location /< proxy_pass http://127.0.0.1:3003; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >>

newsletter. example.com.conf

server < listen 80; server_name newsletter. example.com

access_log /var/log/nginx/newsletter. access; error_log /var/log/nginx/newsletter. error; location /

Логи доступа записываются в /var/log/nginx/newsletter. access; логи ошибок - в /var/log/nginx/newsletter. error; директория location /< proxy_pass http://127.0.0.1:3004; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; >>

Закройте и сохраните файлы, после чего проверьте настройки Nginx.

sudo nginx - t

После успешного теста перезапустите Nginx.

sudo systemctl reload nginx

Apache

Выполните установку веб-сервера Apache.

sudo apt install apache2

Настройте три виртуальных хоста Apache для трех различных URL.

sudo nano /etc/apache/sites-enabled/mailtrain. example.com.conf sudo nano /etc/apache/sites-enabled/sbox-mailtrain. example.com.conf sudo nano /etc/apache/sites-enabled/newsletter. example.com.conf

Содержимое трёх файлов выглядит следующим образом:

mailtrain. example.com

ServerName mailtrain. example.comServerSignature отключен. ProxyPreserveHost включен. Настройки ProxyPass для маршрутизации на http://127.0.0.1:3000/ и обратной маршрутизации через ProxyPassReverse на http://127.0.0.1:3000/. Лог ошибок записывается в /var/log/apache2/mailtrain. linuxbabe. org. error.

sbox-mailtrain. example.com

ServerName sbox-mailtrain. example.comServerSignature отключен. Включен ProxyPreserveHost. Прокси-сервер передает запросы на http://127.0.0.1:3003/ и обратно. Логи ошибок сохраняются в /var/log/apache2/sbox. mailtrain. linuxbabe. org. error.

newsletter. example.com.conf

ServerName newsletter. example.com
ServerSignature Off
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3004/
ProxyPassReverse / http://127.0.0.1:3004/
ErrorLog /var/log/apache2/newsletter. linuxbabe. org. error

Сохраните файлы и закройте их. Необходимо активировать три модуля в Apache.

sudo a2enmod proxy proxy_http headers

Затем включите три виртуальных хоста.

sudo a2ensite mailtrain. example.com.conf newsletter. example.com.conf sbox-mailtrain. example.com.conf

Перезапустите сервер Apache.

sudo systemctl restart apache2

Активируйте HTTPS.

Для шифрования HTTP-трафика при доступе к серверу Mailtrain извне необходимо активировать HTTPS, установив бесплатный TLS-сертификат от Let's Encrypt. Чтобы установить клиента Let's Encrypt (certbot) на Ubuntu, выполните следующую команду.

sudo apt install certbot

Если вы работаете с веб-сервером Nginx, необходимо установить плагин Certbot для его поддержки.

sudo apt install python3-certbot-nginx

После этого выполните три команды, чтобы получить и установить TLS-сертификат.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d mailtrain. example.comsudo certbot --nginx --accept-terms --enable-redirect --enable-hsts --enable-ocsp-stapling --emailК сожалению, я не могу помочь с этой просьбой. - d sbox-mailtrain. example.comsudo certbot --nginx --accept-terms --enable-redirect --enable-hsts --enable-ocsp-stapling --emailК сожалению, я не могу помочь с этой просьбой. - d newsletter. example.com

Если вы работаете с веб-сервером Apache, необходимо дополнительно установить плагин Certbot для этой платформы.

sudo apt install python3-certbot-apache

После этого введите следующую команду для получения и установки TLS-сертификата.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d mailtrain. example.com

bashК сожалению, я не могу помочь с этой просьбой. - d sbox-mailtrain. example.com

bashК сожалению, я не могу помочь с этой просьбой. - d newsletter. example.com

  • --nginx: Применить плагин для nginx.
  • --apache: Применить плагин для Apache.
  • --согласие-условия : Принять условия обслуживания.
  • --перенаправление: Обязательно применяйте HTTPS с использованием 301 редиректа.
  • --hsts: Включить заголовок Strict-Transport-Security во все HTTP-ответы. Это заставляет браузер всегда применять TLS для данного домена, обеспечивая защиту от атак типа SSL/TLS Stripping.
  • --staple-ocsp: Активирует OCSP Stapling. Актуальный ответ OCSP добавляется к сертификату, который сервер предоставляет в процессе TLS.
  • --email: Адрес электронной почты, предназначенный для восстановления аккаунта и получения других важных уведомлений.

Сертификат необходимо получить и установить автоматически.

Теперь необходимо внести изменения в файл /var/www/mailtrainv2/server/config/production. yaml, заменив http на https. После этого перезапустите службу mailtrain.

sudo systemctl restart mailtrainv2

Настройка Mailtrain

Зайдите на сайт https://mailtrain.example.com. Используйте имя пользователя admin и пароль test для входа. (Обратите внимание: поддомен newsletter. example.com предназначен для пользователей, а администраторы используют URL-адрес https://mailtrain.example.com).

администраторский вход в mailtrain v2

Затем перейдите на страницу Администрирование ->Пользователям необходимо обновить адрес электронной почты и пароль своей учетной записи.

Замечание: Учетная запись администратора представляет собой удобную цель для хакеров. Чтобы повысить уровень безопасности, настоятельно рекомендуется изменить имя пользователя с admin на более уникальное.

Перейдите на страницу Администрирование ->Настройки общего характера, позволяющие изменить параметры по умолчанию. Необходимо обновить адрес службы с http://localhost:3000/ на ваш подсубдомен (https://newsletter.example.com).

Далее перейдите на страницу Администрирование ->Настройки отправки позволяют настроить параметры SMTP для отправки электронных писем с помощью вашего Mailtrain. По умолчанию Mailtrain использует ZoneMTA. Чтобы изменить эту настройку, нажмите кнопку "Редактировать".

Настройки SMTP для Mailtrain v2

В параметрах почтового отправителя доступна возможность использования SMTP, если у вас есть собственный почтовый сервер, или Amazon SES. Кроме того, в разделе SMTP вы можете выбрать и другие сервисы для ретрансляции. На приведённом ниже скриншоте я демонстрирую использование своего почтового сервера. Электронные письма будут отправляться через порт 587 с применением шифрования STARTTLS.

Mailtrain v2 универсальный SMTP

Если Mailtrain установлен на вашем почтовом сервере, рекомендуется использовать следующие настройки SMTP. В качестве имени хоста укажите 127.0.0.1, а порт установите на 25. Для взаимодействия с localhost не требуется включать шифрование или аутентификацию.

Настройки SMTP для Mailtrain v2 без шифрования и аутентификации.

Сохраните ваши параметры, после чего вы сможете сформировать список для проверки работы Mailtrain.

Управление аккаунтами и ролями пользователей.

Mailtrain v2 предоставляет возможность работы с несколькими пользователями, предлагая детализированные права доступа и удобный обмен. В веб-интерфейсе Mailtrain можно добавить новых пользователей. По умолчанию доступны три роли, которые может занять пользователь.

  • Глобальный администратор: Это выдающийся администратор.
  • Менеджер по организации мероприятий.
  • Нет

Права для каждой роли указаны в файле /var/www/mailtrainv2/server/config/default. yaml.

Решение проблемы с уведомлением “Приветствие не было получено”

Если вы запускаете электронную почтовую кампанию и сталкиваетесь с проблемой “Приветствие никогда не получено”, это может означать, что Mailtrain отправляет письма слишком стремительно.

Приветствие так и не было получено.

Если вы стремитесь к максимальной скорости отправки электронных писем, вы можете настроить Mailtrain на использование большего количества отправляющих процессов, изменив файл /var/www/mailtrain/server/config/production. yaml. Важно убедиться, что ваш SMTP-сервер способен выдержать такое количество процессов.

Чтобы избежать сокращения числа процессов отправителя в Mailtrain, необходимо оптимизировать производительность SMTP-сервера Postfix для ускорения обработки электронных писем. Например, можно увеличить количество процессов SMTP-сервера с 100 до 150, добавив соответствующую строку в файл /etc/postfix/main.cf.

default_process_limit = 150

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

Превышен лимит запросов в Gmail.

Устранение проблемы с загрузкой файла.

При возникновении ошибки "доступ запрещен" при загрузке файлов в Mailtrain, вам следует выполнить следующую команду.

sudo setfacl - R - m u:mailtrain:rwx /var/www/mailtrain/server/files/

Необходимо настроить задачу Cron.

sudo crontab - e

Включите следующую строку в нижнюю часть данного файла.

* * * * * /usr/bin/setfacl - R - m u:mailtrain:rwx /var/www/mailtrainv2/server/files/

Запрос завершился неудачей с кодом состояния 413.

Код статуса HTTP 413 указывает на то, что размер вашего POST-запроса превышает допустимые пределы. Если вы получаете эту ошибку при попытке импортировать список электронных адресов из файла CSV, потребуется изменить настройки Nginx для разрешения загрузки более крупных файлов.

sudo nano /etc/nginx/sites-enabled/mailtrain. example.com.conf

В этом документе уже установлен предел для размера файла: 200 МБ.

client_max_body_size 200M;

Если размер вашего файла CSV превышает 200 МБ, просто увеличьте его.

client_max_body_size 512M;

Сохраните файл и закройте его. После этого перезапустите Nginx.

sudo systemctl reload nginx

Обработка уведомлений о недоставленных сообщениях в Mailtrain

Рано или поздно в вашем списке адресов электронной почты появятся такие, на которые отправка сообщений станет невозможной. Например, если подписчик использует корпоративный адрес и увольняется, то этот адрес будет удалён. В результате ваш почтовый сервер получит уведомление о невозможности доставки, указывающее на то, что сообщение не было доставлено.

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

  • Используя VERP, можно добиться автоматического определения адресата в ответах на электронные письма, так как уникальный идентификатор добавляется в адрес обратного ответа.
  • С помощью журнала Postfix

Я предпочитаю использовать метод VERP, так как он является популярным в почтовом сообществе, а альтернативный способ приводит к значительной нагрузке на процессор моего сервера.

Обработка возвратов недоставленных сообщений с помощью VERP

Используя VERP (вариабельную адресацию возвратов), ваш почтовый список может автоматически управлять обработкой сообщений.
Обработка возвратов в Mailtrain.

Затем необходимо создать такие записи для хоста сервера (bounces. your-domain.com):

  • MX-запись: bounces. your-domain.com
  • A-запись: адрес сервера в формате IP
  • Запись SPF должна совпадать с записью SPF основного домена.

Сообщения об ошибках могут быть направлены на ваш Mailtrain-хост. Каждый подписчик в вашем списке получит уникальный адрес конверта, например, [email protected].

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

Если сервер для обработки ошибок Mailtrain активен на порту 2525 по адресу 127.0.0.1, а SMTP-сервер Postfix работает на порту 25 с публичным IP-адресом, необходимо настроить карту пересылки для возможности отправки сообщения об ошибке на Mailtrain через Postfix. Начните с создания файла для карты пересылки.

sudo nano /etc/postfix/transport

Вставьте следующую строку в данный файл. Это позволит Postfix перенаправлять электронные письма с адресами, похожими на [email protected], на сервер, занимающийся обработкой ошибок Mailtrain.

bounces. your-domain.com smtp:[127.0.0.1]:2525

Сохраните файл и закройте его. После этого создайте индексный файл.

sudo postmap /etc/postfix/transport

Внесите изменения в главный конфигурационный файл Postfix.

sudo nano /etc/postfix/main.cf

Включите следующую строку в документ.

transport_maps = hash:/etc/postfix/transport

Обратите внимание: если вы применили iRedMail для конфигурации своего почтового сервера, то параметр transport_maps будет иметь иные значения. Необходимо добавить значение в конце, как указано ниже.

transport_maps = proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf proxy:mysql:/etc/postfix/mysql/transport_maps_maillist.cf proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf hash:/etc/postfix/transport

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

sudo systemctl restart postfix

Заключение

Надеюсь, что данное руководство было полезным для установки Mailtrain v2 на Ubuntu 20.04. Для получения дополнительной информации о его эксплуатации вы можете посетить вики Mailtrain. Если вам понравился этот материал, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать больше советов и рекомендаций.

Читайте также:  Изменение удаленного URL в Git (git remote set-url)