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
```html

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 nodemailer

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

```

Recommendations