Настроить шаблоны для отправки email
Зависимость
pnpm add nodemailer @nestjs-modules/mailer handlebars --filter=api
pnpm add -D @types/nodemailer --filter=api
Структура
src/common/mail/
mail.module.ts
mail.service.ts
templates/
invitation.hbs // handlebars-шаблон письма
Переменные окружения (добавить в .env.example)
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USER=noreply@example.com
MAIL_PASSWORD=secret
MAIL_FROM="Tracker Task <noreply@example.com>"
APP_URL=http://localhost:3000
Логика MailService.sendInvitation(invitation, team, invitedByUser)
Письмо содержит:
- Название команды и роль
- Кто пригласил
- Кнопки «Принять» / «Отклонить» — ссылки вида:
${APP_URL}/invitations/${token}/accept
${APP_URL}/invitations/${token}/decline
- Уведомление: «Если вы не зарегистрированы — зарегистрируйтесь, при регистрации приглашение появится в личном кабинете»
В dev-окружении (isDev()) использовать Ethereal Email или логировать URL в консоль вместо реальной отправки.
Настроить шаблоны для отправки email
Зависимость
Структура
Переменные окружения (добавить в
.env.example)Логика
MailService.sendInvitation(invitation, team, invitedByUser)Письмо содержит:
${APP_URL}/invitations/${token}/accept${APP_URL}/invitations/${token}/decline