Nodemailer: Envio de email em TypeScript
Nodemailer é o módulo mais popular para envio de e-mails a partir de aplicações Node.js e TypeScript. Ele permite integrar facilmente o envio de email via SMTP, além de suportar templates HTML, anexos, streams e vários transportes (Gmail, Yandex, SendGrid, etc.). A biblioteca é totalmente compatível com TypeScript graças aos tipos embutidos.
Para que serve o Nodemailer?
No desenvolvimento web moderno, o envio de email é necessário para:
- Confirmação de registro (verificação)
- Recuperação de senha
- Notificações e newsletters
- Alertas do sistema
Nodemailer simplifica esse processo, fornecendo uma API unificada para qualquer serviço de email.
Instalação
npm install nodemailernpm install -D @types/nodemailerPara TypeScript, instale obrigatoriamente o pacote com os tipos.
Principais funcionalidades
- Transporte SMTP — envio através de qualquer servidor SMTP (Gmail, Mail.ru, Yandex, AWS SES).
- HTML e texto — suporte tanto para texto simples quanto para e-mails HTML.
- Anexos — arquivos, imagens, Buffer, streams.
- Templates — integração com handlebars, pug e outros.
- Streams — envio de arquivos grandes sem carregar na memória.
- Pool de conexões — aumento de desempenho em envios em massa.
Exemplo de código em TypeScript
import nodemailer from 'nodemailer';
interface MailOptions { to: string; subject: string; text?: string; html?: string;}
async function sendEmail(options: MailOptions): Promise<void> { // Criamos o transporte (exemplo para Gmail) const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });
// Configurações do e-mail const mailData = { from: 'your-email@gmail.com', to: options.to, subject: options.subject, text: options.text || '', html: options.html || undefined };
// Envio const info = await transporter.sendMail(mailData); console.log('E-mail enviado:', info.messageId);}
// UsosendEmail({ to: 'user@example.com', subject: 'Olá do TypeScript!', html: '<h1>Bem-vindo</h1><p>Este é um e-mail de teste.</p>'});Quando usar Nodemailer
A biblioteca é adequada para:
- Qualquer projeto em Node.js/TypeScript que precise enviar email.
- Protótipos e MVP — configuração rápida via Gmail.
- Sistemas em produção — usando serviços transacionais (SendGrid, Mailgun).
- Microsserviços e serverless (Lambda, Cloud Functions).
Não é recomendado usar Nodemailer para envios massivos de spam — para isso existem ESPs (Email Service Providers) especializados.
Conclusão
Nodemailer é uma biblioteca madura, estável e bem documentada. Graças aos tipos do TypeScript, você obtém autocompletar e verificação de erros em tempo de compilação. É a escolha ideal para envio de email no ecossistema JavaScript/TypeScript.
Também na biblioteca
Trabalho com datas em C# (.NET): visão geral de bibliotecas e ferramentas nativas
Joi para JavaScript (Node.js): guia completo com exemplos
Exposed para Kotlin: guia completo com exemplos
Guia completo do Drogon para C++: exemplos práticos