nakama/EMAIL_SETUP.md

103 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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