Listmonk с функцией пересылки электронной почты для безопасной доставки информационных бюллетеней
Обзор
Это руководство предоставляет разработчикам пошаговые инструкции по настройке Списокмонах, мощный менеджер информационных бюллетеней и списков рассылки с открытым исходным кодом, для использования Пересылать сообщения электронной почты как его SMTP-провайдер. Эта комбинация позволяет вам эффективно управлять своими кампаниями, обеспечивая при этом безопасную, конфиденциальную и надежную доставку электронной почты.
- Списокмонах: Осуществляет управление подписчиками, организацию списков, создание кампаний и отслеживание эффективности.
- Пересылать сообщения электронной почты: действует как защищенный 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).
- Активный аккаунт с Пересылать сообщения электронной почты.
- Корень или
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
файл, который вы скачали:
Это делает Listmonk доступным изнутри через порт 80, который Cloudflare затем может проксировать и защитить с помощью HTTPS.sed -i 's/9000:9000/80:9000/' docker-compose.yml
Вариант Б: использование обратного прокси-сервера (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 и контейнеры базы данных. В первый раз это может занять минуту или две.
✅ Доступ к спискуmonk: Теперь вы сможете получить доступ к веб-интерфейсу Listmonk через настроенный вами домен (например, https://listmonk.yourdomain.com
).
7. Настройте пересылку электронной почты SMTP в Listmonk
Затем настройте Listmonk для отправки писем с использованием вашей учетной записи Forward Email.
- Включить SMTP для пересылки электронной почты: Убедитесь, что вы сгенерировали учетные данные SMTP в панели управления учетной записью пересылки электронной почты. Следуйте Руководство по пересылке электронной почты для отправки электронной почты с пользовательским доменом через SMTP если вы еще этого не сделали.
- Настроить Listmonk: Войдите в панель администратора Listmonk.
-
Перейти к Настройки -> SMTP.
-
Listmonk имеет встроенную поддержку пересылки электронной почты. Выбрать ПереслатьEmail из списка поставщиков или вручную введите следующие данные:
Параметр Ценность Хозяин smtp.forwardemail.net
Порт 465
Протокол аутентификации LOGIN
Имя пользователя Ваш адрес электронной почты для пересылки Имя пользователя SMTP пароль Ваш адрес электронной почты для пересылки SMTP-пароль TLS SSL/TLS
Из электронной почты Ваш желаемый From
адрес (например,newsletter@yourdomain.com
). Убедитесь, что этот домен настроен в пересылке электронной почты. -
Важный: Всегда используйте порт
465
сSSL/TLS
для безопасных соединений с пересылкой электронной почты. Не используйте STARTTLS (порт 587). -
Нажмите Сохранить.
-
- Отправить тестовое письмо: Используйте кнопку «Отправить тестовое письмо» на странице настроек SMTP. Введите адрес получателя, к которому вы можете получить доступ, и нажмите Отправлять. Убедитесь, что письмо пришло в почтовый ящик получателя.
8. Настройте обработку отказов
Обработка отказов позволяет Listmonk автоматически обрабатывать письма, которые не удалось доставить (например, из-за недействительных адресов). Пересылка электронной почты предоставляет веб-хук для уведомления Listmonk о возвратах.
Настройка пересылки электронной почты
- Войдите в свой аккаунт Панель управления пересылкой электронной почты.
- Перейти к Домены, выберите домен, который вы используете для отправки, и перейдите на его Настройки страница.
- Прокрутите вниз до URL-адрес веб-перехватчика Bounce раздел.
- Введите следующий URL, заменив
<your_listmonk_domain>
с фактическим доменом или поддоменом, где доступен ваш экземпляр Listmonk:
Пример:https://<your_listmonk_domain>/webhooks/service/forwardemail
https://listmonk.yourdomain.com/webhooks/service/forwardemail
- Прокрутите страницу вниз до Ключ проверки полезной нагрузки подписи Webhook раздел.
- копия сгенерированный ключ проверки. Он вам понадобится в Listmonk.
- Сохраните изменения в настройках домена для пересылки электронной почты.
Настройка Listmonk
- В панели администратора Listmonk перейдите к Настройки -> Отказы.
- Давать возможность Включить обработку отказов.
- Давать возможность Включить отказы веб-хуков.
- Прокрутите вниз до Поставщики веб-хуков раздел.
- Давать возможность Пересылать сообщения электронной почты.
- Вставьте Ключ проверки полезной нагрузки подписи Webhook вы скопировали из панели управления пересылкой электронной почты в Переслать ключ электронной почты поле.
- Нажмите Сохранить внизу страницы.
- Обработка отказов теперь настроена! Когда Forward Email обнаруживает отказ для письма, отправленного Listmonk, он уведомит ваш экземпляр Listmonk через веб-хук, и Listmonk пометит подписчика соответствующим образом.
- Выполните шаги, указанные ниже, в Тестирование чтобы убедиться, что все работает.
Тестирование
Вот краткий обзор основных функций Listmonk:
Создать список рассылки
- Перейти к Списки на боковой панели.
- Нажмите Новый список.
- Заполните данные (Имя, Тип: Публичный/Частный, Описание, Теги) и Сохранить.
Добавить подписчиков
- Перейдите к Подписчики раздел.
- Вы можете добавлять подписчиков:
- Вручную: Щелкните Новый подписчик.
- Импорт: Щелкните Импортировать подписчиков для загрузки CSV-файла.
- API: Используйте API Listmonk для программных дополнений.
- Назначьте подписчиков одному или нескольким спискам во время создания или импорта.
- Лучшая практика: Используйте процесс двойного подтверждения. Настройте это в разделе Настройки -> Подписка и согласие.
Создать и отправить кампанию
- Перейти к Кампании -> Новая кампания.
- Заполните данные кампании (Имя, Тема, От кого электронное письмо, Списки для отправки).
- Выберите тип контента (форматированный текст/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 с безопасной, уважающей конфиденциальность доставкой Forward Email, вы создаете надежную и этичную платформу email-маркетинга. Вы сохраняете полное владение данными своей аудитории, одновременно получая выгоду от высокой доставляемости и автоматизированных функций безопасности.
Такая конфигурация представляет собой масштабируемую, экономически эффективную и удобную для разработчиков альтернативу фирменным службам электронной почты, идеально соответствующую принципам программного обеспечения с открытым исходным кодом и конфиденциальности пользователей.
Удачной отправки! 🚀