2.0 Introdução aos Emails
Entenda o padrão de Factory utilizado para envios de emails na aplicação.
Entendendo o módulo de Emails
O nosso Boilerplate SaaS utiliza um padrão de projeto estruturado para facilitar ao máximo o envio de e-mails, sem prender você a um provedor específico. Em vez de acoplar o código diretamente ao envio por SMTP ou outra API, utilizamos o Padrão Factory (EmailFactory).
Tudo já está montado e programado para você no backend, na pasta apps/api/src/lib/email.
Como funciona na prática
Existe uma variável de ambiente principal que define qual serviço será responsável pelo envio:
EMAIL_PROVIDER="smtp" # ou "fake" para desenvolvimento local
O arquivo email.factory.ts lê essa variável e instancia a classe correta automaticamente. Ou seja, se o seu serviço de envio atual cair, você pode simplesmente plugar outro serviço (como Resend, AWS SES, etc) trocando a classe provida e a variável, sem alterar a regra de negócios.
A Estrutura do Código
email.port.ts: Contém a interfaceEmailProviderque todos os provedores devem respeitar.email.factory.ts: A fábrica que devolve o provedor escolhido na.env.providers/: Os adaptadores para os diferentes serviços de entrega. Atualmente suportamosFakeeSMTP.
Em qualquer ponto do sistema que precisamos disparar um e-mail longo ou notificações de sistema — como por exemplo o WelcomeEmail do modulo de Auth e módulos de Notificações —, o provedor resolvido é acionado com transparência.
✅ Em resumo: Nós desenhamos a estrutura para escalar do Dev ao Market. Você só precisa definir suas credenciais nos próprios guias dessa mesma seção, e o sistema tomará conta do resto!