Nodemailer: envio de email em JavaScript (Node.js)
Nodemailer é o módulo mais popular para enviar e-mails a partir de aplicações Node.js. Ele fornece uma API simples e flexível para trabalhar com diversos serviços de correio eletrônico (SMTP, Gmail, Outlook, SendGrid e outros). A biblioteca suporta templates HTML, anexos, streams, bem como autenticação segura via OAuth2.
Para que serve o Nodemailer?
- Envio de e-mails transacionais (confirmação de registro, recuperação de senha).
- Distribuição de notificações e campanhas de marketing.
- Integração com formulários de contato no site.
- Envio automático de relatórios e logs.
Instalação
Instale o módulo via npm:
npm install nodemailerPrincipais funcionalidades
- Transport — configuração do servidor SMTP ou uso de transportes integrados (Gmail, Mailgun, SendGrid).
- Formatação do e-mail — suporte a HTML, texto, anexos (arquivos, imagens, PDF).
- Streams — possibilidade de enviar arquivos grandes sem carregá-los na memória.
- OAuth2 — autenticação segura para Gmail e outros provedores.
- Pool de conexões — otimização de desempenho para envios em massa.
Exemplo de código em JavaScript (Node.js)
const nodemailer = require('nodemailer');
// Configuração do transporte (usando Gmail)
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-password' // ou use App Password
}
});
// Parâmetros do e-mail
const mailOptions = {
from: 'your-email@gmail.com',
to: 'recipient@example.com',
subject: 'Olá do Nodemailer!',
html: '<h1>Este é um e-mail de teste</h1><p>Enviado via Node.js.</p>',
attachments: [{
filename: 'document.pdf',
path: './files/document.pdf'
}]
};
// Envio
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log('Erro:', error);
}
console.log('E-mail enviado:', info.response);
});Quando usar o Nodemailer?
A biblioteca é adequada para qualquer projeto em Node.js que exija envio de e-mail: desde pequenos blogs até sistemas corporativos. O Nodemailer integra-se facilmente com frameworks (Express, Koa) e serviços em nuvem. Se você precisa enviar e-mails com anexos, formatação HTML ou via OAuth2 — esta é a melhor escolha.
Observação: para produção, recomenda-se o uso de serviços especializados (SendGrid, Amazon SES) ou relays SMTP para evitar bloqueios. O Nodemailer suporta todos os provedores populares.
```Também na biblioteca
Biblioteca Padrão Java: visão geral completa e exemplos de código
Tokens JWT em Go (Golang): biblioteca golang-jwt e exemplos de uso
Aprendizado de Máquina em JavaScript: bibliotecas para Node.js — visão geral e exemplos
clinic.js — Monitoramento de aplicações TypeScript