Nodemailer para JavaScript (Node.js): guia completo com exemplos

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

O que é Nodemailer e para que serve?

\n\n

Nodemailer é um módulo para Node.js que permite enviar e-mails a partir da sua aplicação JavaScript. É uma das bibliotecas mais populares e estáveis no ecossistema Node.js para trabalhar com e-mail. Ela fornece uma API simples, mas poderosa, para criar e enviar mensagens através de vários transportes (SMTP, Sendmail, Amazon SES e outros).

\n\n

Para que serve o Nodemailer?

\n
    \n
  • Automação de notificações: Envio de e-mails de registro, redefinição de senha, confirmação de pedido e outros eventos.
  • \n
  • Envios em massa: Criação de newsletters, campanhas de marketing (com cuidado para não cair no spam).
  • \n
  • Feedback: Envio de mensagens a partir de formulários de contato no site.
  • \n
  • Monitoramento e logs: Notificação do administrador sobre erros críticos na aplicação.
  • \n
  • Flexibilidade: Suporte a templates HTML, anexos, imagens incorporadas e várias codificações.
  • \n
\n\n

Nodemailer abstrai a complexidade de trabalhar com protocolos de e-mail (SMTP, POP3, IMAP) e fornece uma interface única e compreensível.

\n\n

Instalação do Nodemailer

\n\n

A instalação do Nodemailer é feita através do gerenciador de pacotes npm (Node Package Manager). Certifique-se de ter o Node.js instalado (versão 12 ou superior).

\n\n

Abra o terminal na pasta raiz do seu projeto e execute o comando:

\n\n
npm install nodemailer
\n\n

Após a conclusão da instalação, você pode importar a biblioteca no seu código:

\n\n
const nodemailer = require('nodemailer');
\n\n

Para projetos que usam ES modules (com "type": "module" no package.json), use a importação:

\n\n
import nodemailer from 'nodemailer';
\n\n

Início rápido: enviando o primeiro e-mail

\n\n

A maneira mais simples de enviar um e-mail é usar um servidor SMTP. Neste exemplo, usaremos o serviço Gmail. Importante: Para trabalhar com Gmail, você precisará criar uma "senha de aplicativo" (App Password) ou usar OAuth2. A senha normal da conta não funcionará devido às configurações de segurança do Google.

\n\n
const nodemailer = require('nodemailer');\n\n// 1. Criamos o transporte (forma de envio)\nconst transporter = nodemailer.createTransport({\n    service: 'gmail',\n    auth: {\n        user: 'seu-email@gmail.com', // Seu e-mail\n        pass: 'sua-senha-de-app'     // Senha de aplicativo\n    }\n});\n\n// 2. Configuramos o e-mail\nconst mailOptions = {\n    from: 'seu-email@gmail.com',\n    to: 'destinatario@exemplo.com',\n    subject: 'Olá do Nodemailer!',\n    text: 'Este é um e-mail de teste enviado com Nodemailer.'\n};\n\n// 3. Enviamos o e-mail\ntransporter.sendMail(mailOptions, (error, info) => {\n    if (error) {\n        return console.log('Erro:', error);\n    }\n    console.log('E-mail enviado:', info.messageId);\n    console.log('URL para visualizar:', nodemailer.getTestMessageUrl(info));\n});\n
\n\n

Este código cria um transporte para Gmail, forma um e-mail de texto simples e o envia. Em caso de sucesso, você verá o ID da mensagem no console.

\n\n

Principais métodos e funções do Nodemailer

\n\n

Vamos examinar detalhadamente os principais métodos que a biblioteca fornece.

\n\n

1. nodemailer.createTransport(options)

\n

O que faz: Cria um objeto de transporte — esta é a configuração principal que define exatamente como o e-mail será enviado (através de qual servidor e com quais credenciais).

\n

Parâmetros:

\n

Recommendations