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

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 nodemailer

Para TypeScript, adicionalmente:

npm install @types/nodemailer

Funçõ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.

Recommendations