Зачем нужен SMTP
Email-уведомления используются в Cabinet для:- Верификации email при регистрации
- Сброса пароля
- Уведомлений о платежах, подписках, автопродлении
- Реферальных бонусов и партнёрских заявок
- Заявок на вывод средств
Варианты настройки
Проверка доступности почтовых портов
Многие хостеры блокируют исходящие почтовые порты. Проверьте до начала настройки.Проверка порта 25 (SMTP)
Проверка порта 587 (Submission/STARTTLS)
Проверка порта 465 (SMTPS/SSL)
Интерпретация результатов
Проверка наличия обратной DNS-записи (PTR)
Вариант 1: Внешний SMTP (рекомендуется)
Yandex 360
- Подключите домен к Yandex 360 для бизнеса
- Создайте почтовый ящик (например,
noreply@yourdomain.com) - Сгенерируйте пароль приложения: Yandex ID → Безопасность → Пароли приложений
Лимит Yandex 360: 500 писем в сутки на бесплатном тарифе.
Gmail
- Включите двухфакторную аутентификацию в Google-аккаунте
- Создайте пароль приложения: myaccount.google.com/apppasswords
Лимит Gmail: 500 писем в сутки для обычного аккаунта, 2000 для Google Workspace.
Mailgun / Brevo / Resend
Для массовых рассылок используйте транзакционные email-сервисы:Вариант 2: Свой Postfix
Требования
- Чистый IP-адрес (не в спам-листах)
- PTR-запись, совпадающая с доменом
- Открытый порт 25 (исходящий)
- Выделенный домен для почты
Шаг 1: Установка Postfix
mail.yourdomain.com).
Шаг 2: Настройка Postfix
Шаг 3: DNS-записи
Добавьте в DNS вашего домена:MX-запись
A-запись для почтового сервера
SPF-запись
SPF указывает, какие серверы имеют право отправлять почту от имени домена.-all означает строгий режим: письма с других IP будут отклоняться.
Проверка SPF
Шаг 4: DKIM (подпись писем)
DKIM подписывает каждое письмо криптографическим ключом, подтверждая что оно отправлено вашим сервером.Проверка DKIM
Шаг 5: DMARC
DMARC объединяет SPF и DKIM, указывая получателям что делать с неподтверждёнными письмами.
Рекомендация: начните с
p=none для мониторинга, затем переключите на p=quarantine.
Проверка DMARC
Шаг 6: Настройка .env бота
При использовании локального Postfix аутентификация не нужна (
SMTP_USER и SMTP_PASSWORD оставьте пустыми). TLS отключён, т.к. подключение локальное.Postfix в Docker
Если бот запущен в Docker, у него нет доступа к localhost хоста. Варианты: Вариант A: host network Добавьте вdocker-compose.yml для сервиса бота:
.env:
docker-compose.postfix.yml
.env:
Тестирование
Отправка тестового письма через командную строку
Отправка через SMTP напрямую
Проверка логов Postfix
Проверка через бота
После настройки SMTP перезапустите бота и проверьте:- Откройте Cabinet
- Зарегистрируйтесь по email
- Проверьте что письмо верификации пришло
Проверка доставляемости
Онлайн-сервисы
Отправьте тестовое письмо и проверьте оценку:- mail-tester.com — оценка от 0 до 10, проверяет SPF/DKIM/DMARC, контент, блеклисты
- mxtoolbox.com — проверка DNS-записей, блеклистов, SMTP-сервера
Проверка IP в спам-листах
1.2.3.4 → 4.3.2.1.
Проверка DNS-записей
Чеклист
Перед запуском в продакшн убедитесь:- Порты 25/587 открыты (исходящие)
- PTR-запись настроена и совпадает с
myhostname - MX-запись указывает на почтовый сервер
- SPF-запись добавлена (
v=spf1 ip4:... -all) - DKIM настроен и DNS-запись добавлена
- DMARC-запись добавлена (начните с
p=none) - IP сервера нет в спам-листах
- Тестовое письмо доставляется в inbox (не в спам)
-
CABINET_ENABLED=trueв.envбота -
SMTP_*переменные заполнены в.envбота - Письмо верификации из Cabinet приходит
