Logotipo Hedhog

Receba novidades do Hedhog no seu e-mail

Novos lançamentos, receitas e breaking changes — sem spam.

Voltar para os módulos CoreIntegrado no CoreModule
Captura de tela do módulo mail

Submódulo Core

mail

Gerencia templates/canais de e-mail e fluxos de validação/teste.

Caminho de origem: libraries/core/src/mail

Arquivo do módulo: mail.module.ts

Introdução

O submódulo Mail gerencia templates de e-mail transacional e delega a entrega propriamente dita ao provedor de integração configurado para o canal de e-mail. Separar o gerenciamento de templates do transporte significa que o mesmo sistema de templates funciona com qualquer servidor SMTP, SendGrid, Mailgun ou outro provedor suportado pelas bibliotecas de integração instaladas — trocar de provedor exige alterar um Integration Profile, não implantar novo código.

Um template de e-mail é identificado por um slug e contém uma ou mais traduções específicas por locale, cada uma com um assunto e um corpo em HTML. Os placeholders de variáveis no corpo são substituídos no momento do envio usando um mapa de variáveis. O schema de variáveis declarado em mail_var serve como documentação para os consumidores do template. Esse design mantém o conteúdo do template editável pelo painel de administração em tempo de execução — mudanças de texto, atualizações de localização e ajustes de layout não exigem deploys de código nem reinicializações do servidor.

Quando um e-mail é disparado, o locale é resolvido para o destinatário (a partir das preferências do usuário ou do contexto da requisição) e a tradução correspondente é utilizada. Se não existir tradução para o locale de destino, o sistema recorre ao locale padrão configurado nas configurações. Isso significa que um único slug de template funciona em todos os idiomas suportados, sem lógica condicional no código chamador.

POST /mail/reload faz o serviço de e-mail reler a configuração do provedor sem reiniciar o servidor, permitindo atualizações de credenciais SMTP ou trocas de provedor em produção com zero downtime. POST /mail/test renderiza um template especificado e envia o resultado a um endereço de teste, tornando possível verificar a formatação e a substituição de variáveis antes de uma funcionalidade entrar em produção.

O endpoint de importação em massa aceita um payload JSON estruturado contendo múltiplos templates e faz o upsert deles em uma única requisição. Com overwrite: true, os templates existentes são atualizados; sem ele, os slugs existentes são ignorados. Esse endpoint foi projetado para pipelines de CI/CD que gerenciam templates de e-mail junto com o código da aplicação, garantindo que o conteúdo dos templates permaneça sob controle de versão.

Os registros de e-mails enviados e os metadados de entrega são acompanhados pelo submódulo complementar mail-sent, que mantém o status (received, read, error), os endereços dos destinatários e os detalhes de erro de cada mensagem enviada.

Endpoints HTTP

9 endpoints

Lista todos os templates de e-mail.

Query
page, pageSize, search

Obtém um template de e-mail pelo ID, opcionalmente em um locale específico.

Params
id (int)
Query
locale? (string)

Pré-visualiza um template de e-mail renderizado como HTML.

Params
id (int)
Query
locale? (string)

Cria um novo template de e-mail.

Body

FieldTypeRequiredNotes
slugstringyes
mail_locale{ locale_id: number, subject: string, body: string }[]no
mail_varobject[]noVariable definitions

Atualiza um template de e-mail existente.

Params
id (int)

Body

FieldTypeRequiredNotes
slugstringno
mail_locale{ locale_id: number, subject: string, body: string }[]no
mail_varobject[]no

Exclui um ou mais templates de e-mail.

Body

FieldTypeRequiredNotes
idsnumber[]yesIDs to delete

Recarrega a configuração de e-mail sem reiniciar o servidor.

Envia um e-mail de teste usando um template especificado.

Body

FieldTypeRequiredNotes
slugstringyesTemplate slug to render
emailstringyesValid email address
subjectstringyes
bodystringyes
variablesRecord<string, string>no

Importa templates de e-mail em massa.

Body

FieldTypeRequiredNotes
data{ slug, translations: { code, subject, body }[], variables?: string[] }[]yes
overwritebooleanno

Ferramentas MCP

Ferramentas nomeadas que podem ser chamadas por modelos de IA através do Model Context Protocol (MCP).

  • core.mail.list

    Lista os templates de e-mail com paginação

  • core.mail.get

    Obtém um template de e-mail pelo ID

  • core.mail.create

    Cria um novo template de e-mail com traduções e variáveis

  • core.mail.update

    Atualiza um template de e-mail existente

  • core.mail.delete

    Exclui um ou mais templates de e-mail

  • core.mail.test

    Envia um e-mail de teste usando o template especificado

  • core.mail.reload

    Recarrega a configuração do serviço de e-mail sem reiniciar