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 TypeScript

Nodemailer é o módulo mais popular para envio de e-mails a partir de aplicações Node.js e TypeScript. Ele permite integrar facilmente o envio de email via SMTP, além de suportar templates HTML, anexos, streams e vários transportes (Gmail, Yandex, SendGrid, etc.). A biblioteca é totalmente compatível com TypeScript graças aos tipos embutidos.

Para que serve o Nodemailer?

No desenvolvimento web moderno, o envio de email é necessário para:

  • Confirmação de registro (verificação)
  • Recuperação de senha
  • Notificações e newsletters
  • Alertas do sistema

Nodemailer simplifica esse processo, fornecendo uma API unificada para qualquer serviço de email.

Instalação

npm install nodemailernpm install -D @types/nodemailer

Para TypeScript, instale obrigatoriamente o pacote com os tipos.

Principais funcionalidades

  • Transporte SMTP — envio através de qualquer servidor SMTP (Gmail, Mail.ru, Yandex, AWS SES).
  • HTML e texto — suporte tanto para texto simples quanto para e-mails HTML.
  • Anexos — arquivos, imagens, Buffer, streams.
  • Templates — integração com handlebars, pug e outros.
  • Streams — envio de arquivos grandes sem carregar na memória.
  • Pool de conexões — aumento de desempenho em envios em massa.

Exemplo de código em TypeScript

import nodemailer from 'nodemailer';

interface MailOptions { to: string; subject: string; text?: string; html?: string;}

async function sendEmail(options: MailOptions): Promise<void> { // Criamos o transporte (exemplo para Gmail) const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: 'your-email@gmail.com', pass: 'your-app-password' } });

// Configurações do e-mail const mailData = { from: 'your-email@gmail.com', to: options.to, subject: options.subject, text: options.text || '', html: options.html || undefined };

// Envio const info = await transporter.sendMail(mailData); console.log('E-mail enviado:', info.messageId);}

// UsosendEmail({ to: 'user@example.com', subject: 'Olá do TypeScript!', html: '<h1>Bem-vindo</h1><p>Este é um e-mail de teste.</p>'});

Quando usar Nodemailer

A biblioteca é adequada para:

  • Qualquer projeto em Node.js/TypeScript que precise enviar email.
  • Protótipos e MVP — configuração rápida via Gmail.
  • Sistemas em produção — usando serviços transacionais (SendGrid, Mailgun).
  • Microsserviços e serverless (Lambda, Cloud Functions).

Não é recomendado usar Nodemailer para envios massivos de spam — para isso existem ESPs (Email Service Providers) especializados.

Conclusão

Nodemailer é uma biblioteca madura, estável e bem documentada. Graças aos tipos do TypeScript, você obtém autocompletar e verificação de erros em tempo de compilação. É a escolha ideal para envio de email no ecossistema JavaScript/TypeScript.

Recommendations