Skip to content

Backend 12.4: MailModule — отправка email-уведомлений #121

@SuvStreet

Description

@SuvStreet

Настроить шаблоны для отправки 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 в консоль вместо реальной отправки.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions