nakama/EMAIL_SETUP.md

3.3 KiB
Raw Blame History

📧 Настройка отправки email

Проблема

Ошибка: Missing credentials in config при отправке magic-link email.

Решение

Вариант 1: Настроить AWS SES (если используете AWS)

В файле .env на сервере добавьте:

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 на сервере:

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 сервер

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:

    pm2 restart nakama-backend
    # или
    docker-compose restart backend
    
  2. Проверьте логи:

    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

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