Biblioteca nodemailer para envio de email em TypeScript
nodemailer é uma biblioteca poderosa e popular para Node.js, escrita em TypeScript, que permite enviar e-mails facilmente a partir de aplicações do lado do servidor. Ela suporta todos os protocolos modernos (SMTP, SES, Sendmail) e formatos de e-mail (HTML, texto, anexos).
Para que serve o nodemailer?
No desenvolvimento web, é frequentemente necessário enviar notificações, confirmações de registro, redefinição de senha ou mailings de marketing. O nodemailer resolve esse problema fornecendo uma API simples e flexível para trabalhar com servidores de e-mail. Graças à tipagem do TypeScript, o código se torna mais confiável e previsível.
Instalação
Instale o pacote via npm ou yarn:
npm install nodemailernpm install -D @types/nodemailerPara TypeScript, instale obrigatoriamente o pacote com os tipos.
Principais funcionalidades
- Suporte SMTP — funciona com qualquer servidor SMTP (Gmail, Yandex, Mailgun, SendGrid).
- E-mails HTML e texto — é possível enviar tanto texto simples quanto mensagens HTML formatadas.
- Anexos — suporte para arquivos, imagens e anexos inline.
- Streams — possibilidade de enviar arquivos grandes através de streams.
- Segurança — suporte a TLS/SSL, OAuth2.
- Pool de conexões — otimização para envio em massa.
Exemplo de código em TypeScript
Exemplo simples de envio de e-mail via Gmail SMTP:
import nodemailer from 'nodemailer';
async function sendEmail() { const transporter = nodemailer.createTransport({ host: 'smtp.gmail.com', port: 587, secure: false, // true para 465 auth: { user: 'your-email@gmail.com', pass: 'your-password', }, });
const info = await transporter.sendMail({ from: '"Sender Name" <your-email@gmail.com>', to: 'recipient@example.com', subject: 'Olá do TypeScript!', text: 'Este é o texto do e-mail.', html: '<b>Este é um e-mail HTML</b>', });
console.log('E-mail enviado:', info.messageId);}
sendEmail().catch(console.error);Quando usar nodemailer
A biblioteca é ideal para:
- Aplicações backend em Node.js/Express/NestJS.
- Notificações automáticas (registro, pedidos, erros).
- Confirmação de endereços de e-mail.
- Envio de e-mails transacionais.
- Integração com qualquer provedor SMTP.
Se você precisa enviar e-mails com anexos, templates HTML ou através de serviços externos (SendGrid, Mailgun), o nodemailer é o padrão de facto no ecossistema Node.js.
Importante: Para produção, use variáveis de ambiente para armazenar senhas e configurar OAuth2, a fim de não expor credenciais no código.