nakama/EMAIL_SETUP.md

103 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2026-01-01 19:39:12 +00:00
# 📧 Настройка отправки email
## Проблема
Ошибка: `Missing credentials in config` при отправке magic-link email.
## ✅ Решение
### Вариант 1: Настроить AWS SES (если используете AWS)
В файле `.env` на сервере добавьте:
```bash
EMAIL_PROVIDER=aws
AWS_SES_ACCESS_KEY_ID=your_access_key_id
AWS_SES_SECRET_ACCESS_KEY=your_secret_access_key
AWS_SES_REGION=us-east-1
EMAIL_FROM=noreply@nakama.guru
```
**Важно:**
- `EMAIL_FROM` должен быть верифицированным email в AWS SES
- Для production нужно выйти из sandbox режима AWS SES
### Вариант 2: Использовать Yandex SMTP (рекомендуется для начала)
В файле `.env` на сервере:
```bash
EMAIL_PROVIDER=yandex
YANDEX_SMTP_HOST=smtp.yandex.ru
YANDEX_SMTP_PORT=465
YANDEX_SMTP_SECURE=true
YANDEX_SMTP_USER=your-email@yandex.ru
YANDEX_SMTP_PASSWORD=your_app_password
EMAIL_FROM=your-email@yandex.ru
```
**Важно для Yandex:**
- Используйте **пароль приложения**, а не основной пароль аккаунта
- Пароль приложения создается в настройках безопасности Yandex
- Порт 465 для SSL, порт 587 для STARTTLS
### Вариант 3: Использовать любой SMTP сервер
```bash
EMAIL_PROVIDER=smtp
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=your-email@example.com
SMTP_PASSWORD=your_password
EMAIL_FROM=your-email@example.com
```
## 🔧 После настройки
1. **Перезапустите backend:**
```bash
pm2 restart nakama-backend
# или
docker-compose restart backend
```
2. **Проверьте логи:**
```bash
pm2 logs nakama-backend --lines 50
```
Должно появиться:
- `[Email] ✅ AWS SES клиент инициализирован` (для AWS)
- или `[Email] ✅ SMTP transporter инициализирован` (для SMTP)
3. **Проверьте отправку:**
- Попробуйте отправить magic-link через форму авторизации
- Проверьте логи на наличие ошибок
## ⚠️ Частые проблемы
### 1. "Missing credentials"
- **Причина:** Не установлены AWS credentials
- **Решение:** Установите `AWS_SES_ACCESS_KEY_ID` и `AWS_SES_SECRET_ACCESS_KEY` или используйте `EMAIL_PROVIDER=yandex`
### 2. "EAUTH" ошибка для Yandex
- **Причина:** Используется основной пароль вместо пароля приложения
- **Решение:** Создайте пароль приложения в настройках безопасности Yandex
### 3. "ECONNECTION" ошибка
- **Причина:** Неверный хост или порт SMTP
- **Решение:** Проверьте `YANDEX_SMTP_HOST` и `YANDEX_SMTP_PORT`
## 📝 Пример .env для Yandex
```bash
EMAIL_PROVIDER=yandex
YANDEX_SMTP_HOST=smtp.yandex.ru
YANDEX_SMTP_PORT=465
YANDEX_SMTP_SECURE=true
YANDEX_SMTP_USER=aaem9848@yandex.ru
YANDEX_SMTP_PASSWORD=your_app_password_here
EMAIL_FROM=aaem9848@yandex.ru
```