Listmonk з Forward Email для безпечної доставки розсилок
Огляд
Цей посібник надає розробникам покрокові інструкції для налаштування Listmonk, потужного open-source менеджера розсилок і списків підписників, для використання Forward Email як SMTP-провайдера. Це поєднання дозволяє ефективно керувати вашими кампаніями, забезпечуючи безпечну, приватну та надійну доставку електронної пошти.
- Listmonk: Керує підписниками, організацією списків, створенням кампаній та відстеженням ефективності.
- Forward Email: Виконує роль безпечного SMTP-сервера, обробляючи фактичну відправку листів із вбудованими функціями безпеки, такими як SPF, DKIM, DMARC та шифрування TLS.
Інтегруючи ці два рішення, ви зберігаєте повний контроль над своїми даними та інфраструктурою, використовуючи надійну систему доставки Forward Email.
Чому Listmonk і Forward Email
- Відкритий код: І Listmonk, і принципи Forward Email підкреслюють прозорість і контроль. Ви розміщуєте Listmonk самостійно, володіючи своїми даними.
- Орієнтація на приватність: Forward Email створений з акцентом на конфіденційність, мінімізуючи зберігання даних і фокусуючись на безпечній передачі.
- Економічність: Listmonk безкоштовний, а Forward Email пропонує щедрі безкоштовні тарифи та доступні платні плани, що робить це бюджетним рішенням.
- Масштабованість: Listmonk має високу продуктивність, а інфраструктура Forward Email розроблена для надійної доставки у великих обсягах.
- Зручність для розробників: Listmonk пропонує потужний API, а Forward Email забезпечує просту інтеграцію SMTP та вебхуки.
Вимоги
Перед початком переконайтеся, що у вас є:
- Віртуальний приватний сервер (VPS) з останньою версією Linux (рекомендується Ubuntu 20.04+) з мінімум 1 CPU та 1 ГБ ОЗП (рекомендується 2 ГБ).
- Потрібен провайдер? Перегляньте рекомендований список VPS.
- Домашній домен, яким ви керуєте (потрібен доступ до DNS).
- Активний акаунт у Forward Email.
- Root або
sudoдоступ до вашого VPS. - Базові навички роботи з командним рядком Linux.
Встановлення
Ці кроки допоможуть вам встановити Listmonk за допомогою Docker та Docker Compose на вашому VPS.
1. Оновлення сервера
Переконайтеся, що список пакетів системи та встановлені пакети оновлені.
sudo apt update && sudo apt upgrade -y
2. Встановлення залежностей
Встановіть Docker, Docker Compose та UFW (Uncomplicated Firewall).
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. Переконайтеся, що Proxy status встановлено на Proxied (помаранчова хмара). - Змініть Docker Compose: Відредагуйте файл
docker-compose.yml, який ви завантажили:Це робить Listmonk доступним внутрішньо на порті 80, який Cloudflare потім може проксувати і захистити через HTTPS.sed -i 's/9000:9000/80:9000/' docker-compose.yml
Варіант 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 # Або директорія, де ви зберегли docker-compose.yml
docker compose up -d
Docker завантажить необхідні образи та запустить контейнери з додатком Listmonk і базою даних. Це може зайняти хвилину чи дві при першому запуску.
✅ Доступ до Listmonk: Тепер ви повинні мати змогу отримати доступ до веб-інтерфейсу Listmonk через налаштований домен (наприклад, https://listmonk.yourdomain.com).
7. Налаштування Forward Email SMTP у Listmonk
Далі налаштуйте Listmonk для відправки листів за допомогою вашого облікового запису Forward Email.
- Увімкніть SMTP у Forward Email: Переконайтеся, що ви згенерували SMTP-облікові дані у панелі керування Forward Email. Якщо ні, дотримуйтесь інструкції Forward Email для відправки листів з власного домену через SMTP.
- Налаштуйте Listmonk: Увійдіть у панель адміністратора Listmonk.
-
Перейдіть до Settings -> SMTP.
-
Listmonk має вбудовану підтримку Forward Email. Виберіть ForwardEmail зі списку провайдерів або введіть вручну такі дані:
Налаштування Значення Host smtp.forwardemail.netPort 465Auth protocol LOGINUsername Ваш SMTP ім'я користувача Forward Email Password Ваш SMTP пароль Forward Email TLS SSL/TLSFrom e-mail Бажана адреса відправника From(наприклад,newsletter@yourdomain.com). Переконайтеся, що цей домен налаштований у Forward Email.
-
-
Важливо: Завжди використовуйте порт
465зSSL/TLSдля безпечних з’єднань з Forward Email (рекомендовано). Порт587з STARTTLS також підтримується, але SSL/TLS є пріоритетним.- Натисніть Зберегти.
- Надіслати тестовий лист: Використайте кнопку "Надіслати тестовий лист" на сторінці налаштувань SMTP. Введіть адресу отримувача, до якої маєте доступ, і натисніть Надіслати. Перевірте, що лист надійшов у поштову скриньку отримувача.
8. Налаштування обробки відмов
Обробка відмов дозволяє Listmonk автоматично обробляти листи, які не вдалося доставити (наприклад, через недійсні адреси). Forward Email надає webhook для повідомлення Listmonk про відмови.
Налаштування Forward Email
- Увійдіть у свій Forward Email Dashboard.
- Перейдіть до Domains, виберіть домен, який ви використовуєте для відправки, і відкрийте його сторінку Settings.
- Прокрутіть до розділу Bounce Webhook URL.
- Введіть наступний URL, замінивши
<your_listmonk_domain>на фактичний домен або піддомен, де доступний ваш екземпляр Listmonk:
Приклад:https://<your_listmonk_domain>/webhooks/service/forwardemailhttps://listmonk.yourdomain.com/webhooks/service/forwardemail - Прокрутіть далі до розділу Webhook Signature Payload Verification Key.
- Скопіюйте згенерований ключ перевірки. Він знадобиться у Listmonk.
- Збережіть зміни в налаштуваннях домену Forward Email.
Налаштування Listmonk
- У панелі адміністратора Listmonk перейдіть до Settings -> Bounces.
- Увімкніть Enable bounce processing.
- Увімкніть Enable bounce webhooks.
- Прокрутіть до розділу Webhook Providers.
- Увімкніть Forward Email.
- Вставте Webhook Signature Payload Verification Key, скопійований з панелі Forward Email, у поле Forward Email Key.
- Натисніть Зберегти внизу сторінки.
- Обробка відмов тепер налаштована! Коли Forward Email виявить відмову для листа, надісланого Listmonk, він повідомить ваш екземпляр Listmonk через webhook, і Listmonk відповідно позначить підписника.
- Виконайте наведені нижче кроки в розділі Тестування, щоб переконатися, що все працює.
Тестування
Ось короткий огляд основних функцій Listmonk:
Створення розсилки
- Перейдіть до Lists у бічному меню.
- Натисніть New List.
- Заповніть деталі (Назва, Тип: Публічний/Приватний, Опис, Теги) і натисніть Зберегти.
Додавання підписників
- Перейдіть до розділу Subscribers.
- Ви можете додавати підписників:
- Вручну: Натисніть New Subscriber.
- Імпортом: Натисніть Import Subscribers для завантаження CSV-файлу.
- API: Використовуйте API Listmonk для програмного додавання.
- Призначайте підписників до однієї або кількох розсилок під час створення або імпорту.
- Краща практика: Використовуйте процес подвійного підтвердження (double opt-in). Налаштуйте це у Settings -> Opt-in & Subscriptions.
Створення та надсилання кампанії
- Перейдіть до Campaigns -> New Campaign.
- Заповніть деталі кампанії (Назва, Тема, Email відправника, Список(и) для надсилання).
- Виберіть тип контенту (Rich Text/HTML, Plain Text, Raw HTML).
- Складіть вміст листа. Ви можете використовувати змінні шаблону, такі як
{{ .Subscriber.Email }}або{{ .Subscriber.FirstName }}. - Завжди спочатку надсилайте тестовий лист! Використайте опцію "Send Test" для перегляду листа у своїй поштовій скриньці.
- Коли будете задоволені, натисніть Start Campaign для негайної відправки або заплануйте на пізніше.
Перевірка
- Доставка SMTP: Регулярно надсилайте тестові листи через сторінку налаштувань SMTP Listmonk та тестові кампанії, щоб переконатися, що листи доставляються коректно.
- Обробка відмов: Надішліть тестову кампанію на відому недійсну адресу (наприклад,
bounce-test@yourdomain.com, якщо у вас немає реальної, хоча результати можуть відрізнятися). Перевірте статистику кампанії в Listmonk через деякий час, щоб побачити, чи зареєстровано відмову. - Заголовки листів: Використовуйте інструменти на кшталт Mail-Tester або перевіряйте заголовки листів вручну, щоб переконатися, що SPF, DKIM і DMARC проходять, що свідчить про правильне налаштування через Forward Email.
- Логи Forward Email: Перевірте логи на панелі Forward Email, якщо підозрюєте проблеми з доставкою, що походять від SMTP-сервера.
Примітки для розробників
- Шаблони: Listmonk використовує шаблонізатор Go. Ознайомтеся з його документацією для розширеної персоналізації:
{{ .Subscriber.Attribs.your_custom_field }}. - API: Listmonk надає комплексний REST API для керування списками, підписниками, кампаніями, шаблонами та іншим. Посилання на документацію API знаходиться у футері вашого екземпляра Listmonk.
- Користувацькі поля: Визначайте користувацькі поля підписника в розділі Налаштування -> Поля підписника для зберігання додаткових даних.
- Вебхуки: Окрім відмов, Listmonk може надсилати вебхуки для інших подій (наприклад, підписки), що дозволяє інтегруватися з іншими системами.
Висновок
Інтегруючи самостійно розміщену потужність Listmonk із безпечною, що поважає конфіденційність, доставкою Forward Email, ви створюєте надійну та етичну платформу для email-маркетингу. Ви зберігаєте повну власність над даними вашої аудиторії, одночасно отримуючи переваги високої доставлюваності та автоматизованих функцій безпеки.
Ця конфігурація забезпечує масштабовану, економічно вигідну та дружню до розробників альтернативу пропрієтарним email-сервісам, що ідеально відповідає духу відкритого програмного забезпечення та приватності користувачів.
Щасливої розсилки! 🚀