Merge pull request #26 from austnv/main
Добавлена поддержка локального SMTP-сервера на базе Docker Mailserver
This commit is contained in:
@@ -6,9 +6,10 @@
|
|||||||
|
|
||||||
Файлы приложения (`/app/data`: тарифы, темы, логотипы) монтируются из папки `data` рядом с выбранным `docker-compose.yml`. Для кастомных тем создайте `data/themes`.
|
Файлы приложения (`/app/data`: тарифы, темы, логотипы) монтируются из папки `data` рядом с выбранным `docker-compose.yml`. Для кастомных тем создайте `data/themes`.
|
||||||
|
|
||||||
| Папка | Документация |
|
| Папка | Документация |
|
||||||
| --- | --- |
|
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
| `caddy` | [Развертывание с Caddy](../../docs/getting-started/deployment.md#caddy-рекомендуемый-вариант) |
|
| `caddy` | [Развертывание с Caddy](../../docs/getting-started/deployment.md#caddy-рекомендуемый-вариант) |
|
||||||
| `nginx` | [Развертывание с Nginx](../../docs/getting-started/deployment.md#nginx) |
|
| `nginx` | [Развертывание с Nginx](../../docs/getting-started/deployment.md#nginx) |
|
||||||
| `newt` | [Развертывание через Pangolin / Newt](../../docs/getting-started/deployment.md#pangolin--newt) |
|
| `newt` | [Развертывание через Pangolin / Newt](../../docs/getting-started/deployment.md#pangolin--newt) |
|
||||||
| `no-proxy` | [Запуск без обратного прокси](../../docs/getting-started/deployment.md#без-обратного-прокси) |
|
| `no-proxy` | [Запуск без обратного прокси](../../docs/getting-started/deployment.md#без-обратного-прокси) |
|
||||||
|
| `mail` | [Развертывание локального SMTP-сервера](../../docs/features/email-login.md#настройка-локального-smtp-сервера) |
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
services:
|
||||||
|
mailserver:
|
||||||
|
image: ghcr.io/docker-mailserver/docker-mailserver:latest
|
||||||
|
container_name: mailserver
|
||||||
|
hostname: mail.example.com # Замените на ваш реальный домен (оставить поддомен mail)
|
||||||
|
domainname: example.com # Замените на ваш реальный домен
|
||||||
|
ports:
|
||||||
|
- "25:25"
|
||||||
|
- "587:587"
|
||||||
|
- "465:465"
|
||||||
|
- "993:993"
|
||||||
|
volumes:
|
||||||
|
- ./mail-data:/var/mail
|
||||||
|
- ./config:/tmp/docker-mailserver
|
||||||
|
environment:
|
||||||
|
- SSL_TYPE=manual
|
||||||
|
- SSL_CERT_PATH=path/to/your/crt/file/example.com.crt # Путь к файлу сертификата
|
||||||
|
- SSL_KEY_PATH=path/to/your/key/file/example.com.key # Путь к закрытому ключу
|
||||||
|
- OVERRIDE_HOSTNAME=mail.example.com # Замените на ваш реальный домен
|
||||||
|
- PERMIT_DOCKER=network
|
||||||
|
- ENABLE_OPENDKIM=0
|
||||||
|
- ENABLE_OPENDMARC=0
|
||||||
|
- ENABLE_AMAVIS=0
|
||||||
|
- ENABLE_CLAMAV=0
|
||||||
|
- ENABLE_SPAMASSASSIN=0
|
||||||
|
restart: always
|
||||||
@@ -112,3 +112,56 @@ docker compose logs -f backend
|
|||||||
- Пользователь получает `rate_limited`: подождите `EMAIL_CODE_RESEND_SECONDS` или проверьте brute-force настройки.
|
- Пользователь получает `rate_limited`: подождите `EMAIL_CODE_RESEND_SECONDS` или проверьте brute-force настройки.
|
||||||
|
|
||||||
Email-уведомления поддержки, платежей и жизненного цикла подписки используют тот же SMTP-контур. Сценарий поддержки описан в [разделе тикетов](support.md), сводка по каналам - в разделе [уведомления](notifications.md).
|
Email-уведомления поддержки, платежей и жизненного цикла подписки используют тот же SMTP-контур. Сценарий поддержки описан в [разделе тикетов](support.md), сводка по каналам - в разделе [уведомления](notifications.md).
|
||||||
|
|
||||||
|
## Настройка локального SMTP-сервера
|
||||||
|
|
||||||
|
### Требования
|
||||||
|
|
||||||
|
Перед запуском локального SMTP-сервера вам потребуется настроить DNS-записи вашего домена:
|
||||||
|
|
||||||
|
* A — mail.example.com (указать IP вашего сервера)
|
||||||
|
* MX — mail.example.com (приоритет 10)
|
||||||
|
* PTR — mail.example.com (настраивается у вашего хостера VPS)
|
||||||
|
* TXT — `v=spf1 ip4:1.2.3.4 ~all` (поддомен @, замените `1.2.3.4` на реальный ipv4 вашего сервера)
|
||||||
|
|
||||||
|
После изменения DNS-записей подождите некоторое время (иногда требуется от 3 часов до суток) для применения изменений.
|
||||||
|
|
||||||
|
Для использования STARTTLS необходимо получить TLS/SSL-сертификат для домена mail.example.com. Самый простой способ это сделать — прописать следующую директиву в Caddyfile (если вы используете Caddy):
|
||||||
|
|
||||||
|
```Caddyfile
|
||||||
|
https://mail.example.com {
|
||||||
|
respond "Mail server"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Установка
|
||||||
|
|
||||||
|
1. Настройка docker-compose.yml:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mkdir -p /opt/mailserver
|
||||||
|
cd /opt/mailserver
|
||||||
|
curl -O https://raw.githubusercontent.com/3252a8/remnawave-minishop/refs/heads/main/deploy/examples/mail/docker-compose.yml
|
||||||
|
nano docker-compose.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Запуск:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Создание пользователя:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Скрипт попросит придумать пароль и потвердить его
|
||||||
|
docker exec -it mailserver setup email add no-reply@example.com
|
||||||
|
|
||||||
|
# Проверка создания пользователя
|
||||||
|
docker exec -it mailserver setup email list
|
||||||
|
|
||||||
|
# Должны увидеть:
|
||||||
|
# no-reply@example.com
|
||||||
|
```
|
||||||
|
|
||||||
|
После всех настроек вы можете использовать свой почтовый клиент (Microsoft Outlook, Mozilla Thunderbird) для отправки и получения писем. В окне добавления нового аккаунта достаточно ввести созданную почту no-reply@example.com и пароль.
|
||||||
|
|||||||
Reference in New Issue
Block a user