O que é Nodemailer e para que serve?
Nodemailer é o módulo mais popular para envio de e-mails no ambiente Node.js. Escrito em JavaScript, funciona perfeitamente com TypeScript graças aos tipos integrados (DefinitelyTyped). A biblioteca permite enviar e-mails via SMTP, Sendmail, Amazon SES e outros transports. Em projetos TypeScript, o Nodemailer fornece tipagem estrita para todas as opções, o que reduz o número de erros em tempo de compilação.
Instalação
Para instalar, execute o comando:
npm install nodemailer @types/nodemailerO pacote @types/nodemailer adiciona as declarações de tipos necessárias para TypeScript.
Principais funcionalidades
- Envio de e-mails via SMTP — suporte para Gmail, Yandex, Mail.ru, SendGrid e qualquer outro servidor SMTP.
- Anexos — possibilidade de anexar arquivos, imagens, PDFs.
- Modelos HTML — envio de e-mails com conteúdo HTML formatado.
- Suporte a SSL/TLS — transmissão segura de dados.
- Pool de conexões — otimização para envios em massa.
Exemplo de código em TypeScript
Abaixo está um exemplo mínimo de envio de e-mail via Gmail SMTP usando TypeScript:
import nodemailer from 'nodemailer';
interface MailOptions { from: string; to: string; subject: string; text?: string; html?: string;}
async function sendEmail(options: MailOptions): Promise<void> { const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your@gmail.com', pass: 'your-app-password', }, });
const info = await transporter.sendMail(options); console.log('E-mail enviado:', info.messageId);}
// UsosendEmail({ from: 'your@gmail.com', to: 'recipient@example.com', subject: 'Olá do TypeScript!', html: '<h1>E-mail de teste</h1><p>Enviado com Nodemailer</p>',});Importante: Para o Gmail, é necessário usar uma senha de aplicativo (App Password), e não a senha normal.
Quando usar Nodemailer?
A biblioteca é adequada para:
- E-mails de registro (confirmação de e-mail, recuperação de senha).
- Notificações de pedidos em lojas online.
- Newsletters e e-mails de marketing (usando filas).
- Relatórios automáticos do backend (logs, erros, estatísticas).
Se você precisa enviar e-mails em um projeto TypeScript — o Nodemailer continua sendo o padrão de facto devido à sua flexibilidade, confiabilidade e enorme comunidade.