Biblioteca 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, mas poderosa, para trabalhar com diversos serviços de e-mail (SMTP, Gmail, Outlook, SendGrid, Amazon SES, etc.). A biblioteca suporta templates HTML, anexos, fluxos de dados e criptografia (SSL/TLS).
Para que serve o Nodemailer?
No desenvolvimento web moderno, o envio de e-mail é uma funcionalidade básica: e-mails de registro, redefinição de senha, notificações e newsletters. O Nodemailer resolve as seguintes tarefas:
- Trabalho universal com qualquer servidor SMTP.
- Suporte para mensagens HTML e texto simples.
- Arquivos anexados (imagens, PDFs, arquivos compactados).
- Transmissão por fluxo de grandes dados.
- Integração com serviços populares (Gmail, Yandex, Mail.ru).
Instalação
Instale o módulo via npm:
npm install nodemailerPara TypeScript, adicionalmente:
npm install @types/nodemailerFunções principais
- createTransport() — criação de um transporte para conectar ao servidor de e-mail.
- sendMail() — envio de e-mail com configurações (de, para, assunto, corpo, anexos).
- verify() — verificação da conexão com o servidor.
- use() — conexão de plugins (por exemplo, para templates).
Exemplo de código em Node.js
const nodemailer = require('nodemailer');
// Configuração do transporte (exemplo para Gmail com App Password)const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' // Não é a senha comum, mas a senha do aplicativo }});
// Função de envio de e-mailasync function sendEmail() { try { const info = await transporter.sendMail({ from: '"Your Name" <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>' }); console.log('E-mail enviado: %s', info.messageId); } catch (error) { console.error('Erro ao enviar:', error); }}
sendEmail();Quando usar o Nodemailer?
- Registro e autenticação — envio de e-mails de confirmação de e-mail.
- Notificações — alertas sobre ações do usuário (pedido, comentário).
- Newsletters — envio em massa (mas para grandes volumes, é melhor usar SendGrid/Mailgun).
- Depuração — envio de e-mails em ambiente local (via Ethereal ou Mailtrap).
Importante: Para produção, use servidores SMTP reais (SendGrid, Amazon SES, Mailgun) ou configure seu próprio servidor de e-mail. O Gmail tem limites (500 e-mails/dia) e exige senha de aplicativo.
O Nodemailer é o padrão de facto para envio de e-mail em Node.js. É simples, confiável e possui uma grande comunidade.
Também na biblioteca
Monitoramento de aplicações TypeScript: bibliotecas, ferramentas e configuração
Flysystem para PHP: guia completo com exemplos
Processamento JSON em C++: bibliotecas, parsing e serialização de dados