103 lines
3.3 KiB
Markdown
103 lines
3.3 KiB
Markdown
# 📧 Настройка отправки 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
|
||
```
|
||
|