Nodemailer: envio de email em JavaScript (Node.js)
Nodemailer é o módulo mais popular para enviar e-mails a partir de aplicações em Node.js. Ele fornece uma API simples e flexível para trabalhar com servidores SMTP, além de suportar templates HTML, anexos, transmissão por stream e vários transportes (SMTP, Sendmail, Amazon SES e outros).
Para que serve o Nodemailer?
Em aplicações web, é frequentemente necessário enviar e-mails: confirmações de registro, redefinição de senha, notificações, newsletters. O Nodemailer permite fazer isso sem dependências desnecessárias, com suporte a OAuth2, SSL/TLS e codificações. Ele funciona de forma assíncrona e não bloqueia o Event Loop.
Instalação
Instale o módulo via npm:
npm install nodemailerPara trabalhar com Gmail ou Yandex.Mail, pode ser necessária uma configuração adicional (senha de aplicativo ou OAuth2).
Principais funcionalidades
- Envio via SMTP, Sendmail, AWS SES, Mailgun, SendGrid
- Suporte a e-mails HTML e texto simples
- Anexos (arquivos, imagens, Buffer, Stream)
- Autenticação OAuth2 (Gmail, Outlook)
- Pool de conexões para envio em massa
- Template (integração com Handlebars, EJS)
Exemplo de código em JavaScript (Node.js)
Exemplo simples de envio de e-mail via Gmail SMTP:
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-app-password'
}
});
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'Olá do Node.js',
html: '<h1>E-mail de teste</h1><p>Enviado via Nodemailer</p>'
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log('Erro:', error);
} else {
console.log('E-mail enviado:', info.response);
}
});Quando usar
O Nodemailer é adequado para qualquer projeto Node.js que precise enviar e-mails: desde scripts simples até aplicações corporativas. Ele é estável, bem documentado e mantido por milhares de desenvolvedores. Se você precisa de envio em massa (newsletter), é melhor usar serviços especializados (SendGrid, Mailchimp) através de suas APIs, mas para e-mails transacionais (transactional email), o Nodemailer é a escolha ideal.
Também na biblioteca
Envio de SMS em C# (.NET): Integração com API de Serviços SMS via HttpClient
TypeStack/routing-controllers para TypeScript: guia completo com exemplos
Cache em Kotlin: Redis, Caffeine e outras soluções
Container de Injeção de Dependência para C# (.NET) — guia completo