Nodemailer

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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 nodemailer

Para 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.

Recommendations