Listmonk із переадресацією електронної пошти для безпечної доставки розсилки
Огляд
Цей посібник надає розробникам покрокові інструкції щодо налаштування Лістмонк, потужного менеджера розсилки та розсилки з відкритим кодом, для використання Переслати електронний лист як SMTP-провайдера. Таке поєднання дозволяє ефективно керувати вашими кампаніями, забезпечуючи безпечну, конфіденційну та надійну доставку електронної пошти.
- Listmonk: Керує підписниками, організує списки розсилки, створює кампанії та відстежує ефективність.
- Пересилання електронної пошти: Виконує роль безпечного SMTP-сервера, обробляючи фактичне надсилання електронних листів за допомогою вбудованих функцій безпеки, таких як SPF, DKIM, DMARC та шифрування TLS.
Інтегруючи ці два сервіси, ви зберігаєте повний контроль над своїми даними та інфраструктурою, використовуючи при цьому надійну систему доставки Forward Email.
Чому Listmonk та пересилання електронної пошти
- Відкритий код: Як Listmonk, так і принципи, що лежать в основі Forward Email, наголошують на прозорості та контролі. Ви самі розміщуєте Listmonk, володіючи своїми даними.
- Орієнтація на конфіденційність: Forward Email створено з урахуванням конфіденційності, мінімізуючи зберігання даних та зосереджуючись на безпечній передачі.
- Економічно ефективний: Listmonk безкоштовний, а Forward Email пропонує щедрі безкоштовні рівні та доступні платні плани, що робить його бюджетним рішенням.
- Масштабованість: Listmonk високопродуктивний, а інфраструктура Forward Email розроблена для надійної доставки у великих масштабах.
- Зручний для розробників: Listmonk пропонує надійний API, а Forward Email забезпечує просту інтеграцію SMTP та вебхуки.
Передумови
Перш ніж почати, переконайтеся, що у вас є наступне:
- Віртуальний приватний сервер (VPS) з новим дистрибутивом Linux (рекомендовано Ubuntu 20.04+) з щонайменше 1 процесором та 1 ГБ оперативної пам'яті (рекомендовано 2 ГБ).
- Потрібен провайдер? Перегляньте рекомендований список VPS.
- Доменне ім'я, яке ви контролюєте (потрібен доступ до DNS).
- Активний обліковий запис з Переслати електронний лист.
- Root-доступ або доступ
sudo
до вашого VPS. - Базове знайомство з операціями командного рядка Linux.
Інсталяція
Ці кроки допоможуть вам встановити Listmonk за допомогою Docker та Docker Compose на вашому VPS.
1. Оновіть свій сервер
Переконайтеся, що список пакетів вашої системи та встановлені пакети оновлені.
sudo apt update && sudo apt upgrade -y
2. Встановлення залежностей
Встановіть Docker, Docker Compose та UFW (нескладний брандмауер).
sudo apt install -y docker.io docker-compose ufw
3. Завантажити конфігурацію Listmonk
Створіть каталог для Listmonk та завантажте офіційний файл docker-compose.yml
.
mkdir listmonk && cd listmonk
curl -Lo docker-compose.yml https://raw.githubusercontent.com/knadh/listmonk/master/docker-compose.yml
Цей файл визначає контейнер застосунку Listmonk та необхідний для нього контейнер бази даних PostgreSQL.
4. Налаштування брандмауера (UFW)
Дозвольте важливий трафік (SSH, HTTP, HTTPS) через брандмауер. Якщо ваш SSH працює на нестандартному порту, налаштуйте його відповідно.
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Підтвердіть увімкнення брандмауера, коли з’явиться відповідний запит.
5. Налаштування доступу HTTPS
Запуск Listmonk через HTTPS є критично важливим для безпеки. У вас є два основні варіанти:
Варіант A: Використання проксі-сервера Cloudflare (рекомендовано для спрощення)
Якщо DNS вашого домену керується Cloudflare, ви можете скористатися їхньою функцією проксі-сервера для зручного HTTPS.
-
DNS точки: Створіть запис
A
у Cloudflare для вашого піддомену Listmonk (наприклад,listmonk.yourdomain.com
), який вказує на IP-адресу вашого VPS. Переконайтеся, що для параметра Статус проксі встановлено значення Проксовано (помаранчева хмара). -
Змінити Docker Compose: Відредагуйте завантажений файл
docker-compose.yml
:
sed -i 's/9000:9000/80:9000/' docker-compose.yml
Це зробить Listmonk доступним внутрішньо на порту 80, який Cloudflare потім може проксіювати та захищати за допомогою HTTPS.
Варіант B: Використання зворотного проксі-сервера (Nginx, Caddy тощо)
Або ж ви можете налаштувати зворотний проксі-сервер, такий як Nginx або Caddy, на вашому VPS для обробки HTTPS-завершення та проксі-запитів до Listmonk (за замовчуванням працює на порту 9000).
- Залиште значення
ports: - "127.0.0.1:9000:9000"
за замовчуванням уdocker-compose.yml
, щоб забезпечити доступ до Listmonk лише локально. - Налаштуйте вибраний зворотний проксі-сервер для прослуховування портів 80 та 443, обробки отримання SSL-сертифіката (наприклад, через Let's Encrypt) та переадресації трафіку на
http://127.0.0.1:9000
. - Детальне налаштування зворотного проксі-сервера виходить за рамки цього посібника, але багато навчальних посібників доступні в Інтернеті.
6. Запустіть Listmonk
Поверніться до каталогу listmonk
(якщо ви ще там не перебуваєте) та запустіть контейнери в окремому режимі.
cd ~/listmonk # Or the directory where you saved docker-compose.yml
docker compose up -d
Docker завантажить необхідні образи та запустить застосунок Listmonk і контейнери бази даних. Першого разу це може зайняти хвилину-дві.
✅ Доступ до Listmonk: Тепер ви маєте змогу отримати доступ до веб-інтерфейсу Listmonk через налаштований вами домен (наприклад, https://listmonk.yourdomain.com
).
7. Налаштування пересилання електронної пошти через SMTP у Listmonk
Далі налаштуйте Listmonk для надсилання електронних листів, використовуючи ваш обліковий запис Forward Email.
- Увімкніть SMTP у пересиланні електронної пошти: Переконайтеся, що ви створили облікові дані SMTP на панелі керування обліковим записом пересилання електронної пошти. Виконайте дії Посібник з пересилання електронної пошти для надсилання електронної пошти з користувацьким доменом через SMTP, якщо ви ще цього не зробили.
- Налаштуйте Listmonk: Увійдіть до панелі адміністратора Listmonk.
-
Перейдіть до Налаштування -> SMTP.
-
Listmonk має вбудовану підтримку пересилання електронної пошти. Виберіть ForwardEmail зі списку постачальників або вручну введіть такі дані:
Налаштування | Значення |
---|---|
Хост | smtp.forwardemail.net |
Порт | 465 |
Протокол автентифікації | LOGIN |
Ім'я користувача | Ваша електронна адреса для пересилання Ім'я користувача SMTP |
Пароль | Ваш переадресаційний електронний лист SMTP-пароль |
TLS | SSL/TLS |
З електронної пошти | Ваша бажана адреса From (наприклад, newsletter@yourdomain.com ). Переконайтеся, що цей домен налаштовано в розділі «Пересилання електронної пошти». |
-
Важливо: Завжди використовуйте порт
465
зSSL/TLS
для безпечних з’єднань із пересиланням електронної пошти. Не використовуйте STARTTLS (порт 587). -
Натисніть Зберегти.
- Надіслати тестовий електронний лист: Натисніть кнопку «Надіслати тестовий електронний лист» на сторінці налаштувань SMTP. Введіть адресу одержувача, до якої ви маєте доступ, і натисніть Надіслати. Переконайтеся, що електронний лист надійшов до поштової скриньки одержувача.
8. Налаштування обробки відмов
Обробка відмов дозволяє Listmonk автоматично обробляти електронні листи, які не вдалося доставити (наприклад, через недійсні адреси). Пересилання електронної пошти надає вебхук для сповіщення Listmonk про відмову.
Налаштування пересилання електронної пошти
- Увійдіть у свій обліковий запис Панель керування пересиланням електронної пошти.
- Перейдіть до розділу Домени, виберіть домен, який ви використовуєте для надсилання, і перейдіть на сторінку Налаштування.
- Прокрутіть униз до розділу URL-адреса відхилення вебхука.
- Введіть наступну URL-адресу, замінивши
<your_listmonk_domain>
фактичним доменом або піддоменом, де доступний ваш екземпляр Listmonk:
https://<your_listmonk_domain>/webhooks/service/forwardemail
Приклад: https://listmonk.yourdomain.com/webhooks/service/forwardemail
5. Прокрутіть далі до розділу Ключ перевірки корисного навантаження підпису вебхука.
6. Скопіюйте згенерований ключ перевірки. Він знадобиться вам у Listmonk.
7. Збережіть зміни в налаштуваннях домену пересилання електронної пошти.
Налаштування Listmonk
-
У панелі адміністратора Listmonk перейдіть до Налаштування -> Відмовлення.
-
Увімкніть Увімкнути обробку відмов.
-
Увімкніть Увімкнути вебхуки відмов.
-
Прокрутіть униз до розділу Постачальники вебхуків.
-
Увімкніть Пересилання електронної пошти.
-
Вставте Ключ перевірки корисного навантаження підпису вебхука, який ви скопіювали з панелі інструментів пересилання електронної пошти, у поле Ключ пересилання електронної пошти.
-
Натисніть Зберегти внизу сторінки.
-
Обробку відмов тепер налаштовано! Коли функція пересилання електронної пошти виявить відмову для електронного листа, надісланого Listmonk, вона повідомить ваш екземпляр Listmonk через вебхук, і Listmonk відповідно позначить підписника.
-
Виконайте наведені нижче кроки в Тестування, щоб переконатися, що все працює.
Тестування
Ось короткий огляд основних функцій Listmonk:
Створити список розсилки
- Перейдіть до Списків на бічній панелі.
- Натисніть Новий список.
- Заповніть дані (Назва, Тип: Публічний/Приватний, Опис, Теги) та Зберегти.
Додати підписників
- Перейдіть до розділу Підписники.
- Ви можете додати підписників:
- Вручну: Натисніть Новий підписник.
- Імпорт: Натисніть Імпорт підписників, щоб завантажити файл CSV.
- API: Використовуйте API Listmonk для програмного додавання.
- Призначте підписників одному або кільком спискам під час створення або імпорту.
- Найкраща практика: Використовуйте процес подвійної підписки. Налаштуйте це в розділі Налаштування -> Підписка та підписки.
Створити та надіслати кампанію
- Перейдіть до Кампанії -> Нова кампанія.
- Заповніть деталі кампанії (Ім'я, Тема, Ел. пошта відправника, Список(и) для надсилання).
- Виберіть тип контенту (Rich Text/HTML, Звичайний текст, Необроблений HTML).
- Створіть контент електронного листа. Ви можете використовувати змінні шаблону, такі як
{{ .Subscriber.Email }}
або{{ .Subscriber.FirstName }}
. - Завжди спочатку надсилайте тестовий лист! Використовуйте опцію «Надіслати тестовий лист», щоб переглянути лист у своїй поштовій скриньці. * Якщо ви задоволені результатами, натисніть Розпочати кампанію, щоб надіслати його негайно або запланувати на потім.
Підтвердження
- Доставка SMTP: Регулярно надсилайте тестові електронні листи через сторінку налаштувань SMTP Listmonk та тестуйте кампанії, щоб переконатися, що листи доставлені правильно.
- Обробка відмов: Надсилайте тестову кампанію на відому недійсну адресу електронної пошти (наприклад,
bounce-test@yourdomain.com
, якщо у вас немає справжньої під рукою, хоча результати можуть відрізнятися). Перевірте статистику кампанії в Listmonk через деякий час, щоб побачити, чи зареєстровано відмову. - Заголовки електронних листів: Використовуйте такі інструменти, як Тестер пошти, або перевіряйте заголовки електронних листів вручну, щоб переконатися, що SPF, DKIM та DMARC проходять успішну перевірку, що вказує на правильне налаштування пересилання електронної пошти.
- Журнали пересилання електронної пошти: Перевірте журнали панелі інструментів пересилання електронної пошти, якщо підозрюєте, що проблеми з доставкою виникають через SMTP-сервер.
Нотатки розробника
- Шаблони: Listmonk використовує механізм шаблонів Go. Перегляньте його документацію для розширеної персоналізації:
{{ .Subscriber.Attribs.your_custom_field }}
. - API: Listmonk надає комплексний REST API для керування списками, підписниками, кампаніями, шаблонами тощо. Посилання на документацію API можна знайти в нижньому колонтитулі вашого екземпляра Listmonk.
- Налаштовувані поля: Визначте власні поля підписників у розділі Налаштування -> Поля підписників для зберігання додаткових даних.
- Вебхуки: Окрім відмов, Listmonk може надсилати вебхуки для інших подій (наприклад, підписок), що дозволяє інтеграцію з іншими системами.
Висновок
Інтегруючи можливості Listmonk, що самостійно розміщується, з безпечною та конфіденційною доставкою переадресації електронної пошти, ви створюєте надійну та етичну платформу email-маркетингу. Ви зберігаєте повне право власності на дані своєї аудиторії, отримуючи при цьому переваги високої доставляльності та автоматизованих функцій безпеки.
Ця конфігурація забезпечує масштабовану, економічно ефективну та зручну для розробників альтернативу власницьким поштовим сервісам, що ідеально відповідає принципам програмного забезпечення з відкритим кодом та конфіденційності користувачів.
Щасливого відправлення! 🚀