Enviando E-mails com Node.js

Lucas Salvador
Training Center
Published in
3 min readJul 11, 2019

É notável que JavaScript vem se tornado uma linguagem famosa entre nós desenvolvedores. E um de seus usos tem sido com Node.js, um ambiente de execução Javascript server-side, isto é, uma maneira de executar código escrito em javascript do lado do servidor.

Uma das eventuais tarefas que o Node.js pode executar é o envio de e-mails. Esta função por ser útil para notificar o contato de possíveis clientes, enviar algum conteúdo para as pessoas que solicitarem, para notificar sobre alguma ação dentro da sua aplicação, etc.

Já entendemos como o envio de emails pode ser útil na sua aplicação. Mas, antes do código precisamos realizar algumas configurações para conseguir enviar o e-mail.

Vamos criar o arquivo ‘package.json’, responsável por gerenciar as dependências dentro de um projeto node. Então, no terminal (cmd) dentro de uma pasta de sua escolha digite o comando abaixo.

PS: Todos os comandos listados daqui em diante devem ser executados no terminal e dentro da mesma pasta.

npm init -y

Estamos usando a opção -y para não ter que responder algumas perguntas no meio do caminho.

O node tem um pacote chamado nodemailer. Ele será responsável pelo envio de e-mail da nossa aplicação. Para instalar este pacote basta executar o seguinte comando.

npm install nodemailer

Pronto configuramos tudo, então vamos ao código.

Yesssssssssss

Dentro da pasta vamos criar o arquivo ‘app.js’. Segue abaixo o código deste arquivo.

var nodemailer = require(‘nodemailer’);

Então, aqui importamos o nodemailer.

var remetente = nodemailer.createTransport({

host: ‘’,

service: ‘’,

port: 587,

secure: true,

auth:{

user: ‘seuEmail@email.com’,

pass: ‘suaSenha’ }

});

Neste bloco a cima configuramos o email do remetente. Para isso construímos um objeto com os seguinte valores:

Host: endereço do seu servidor de smtp,

Service: endereço do seu servidor de smtp,

Porta: porta que será utilizada para mandar o e-mail, por padrão é sempre a porta 587,

Auth User: seu e-mail,

Auth Senha: sua senha.

Agora vamos configurar o e-mail a ser enviado.

var emailASerEnviado = {

from: ‘seuEmail@email.com’,

to: ‘seuDestino@email.com’,

subject: ‘Enviando Email com Node.js’,

text: ‘Estou te enviando este email com node.js’,

};

O emailASerEnviado é um objeto que contém os seguintes valores:

From: remetente do e-mail,

to: destinatário do e-mail

subject: Assunto do e-mail,

text: Corpo do e-mail.

Então, agora que configuramos o remetente e o email a ser enviado vamos enviá-lo

remetente.sendMail(emailASerEnviado, function(error){

if (error) {

console.log(error);

} else {

console.log(‘Email enviado com sucesso.’);

}

});

O nodeMailer vai enviar o e-mail por meio da função ‘sendEmail’. O primeiro parâmetro da função é o e-mail a ser enviado que configuramos no objeto ‘emailASerEnviado’ anteriormente e o segundo parâmetro é uma função de callback chamada após o node terminar de enviar o e-mail. Caso ocorra algum erro será exibido na tela, caso tenha sucesso será exibido ‘Email enviado com sucesso’.

Para executar seu código basta voltar ao terminal e executar:

node app.js

Se tudo ocorrer corretamente será exibido a mensagem 'Email enviado com sucesso’ no terminal.

Isso é tudo pessoal!

Então, neste artigo vimos alguns casos de uso do envio de e-mail, conhecemos o nodemailer, aprendemos a instalá-lo,configurá-lo e enviar um email a partir dele. Este tutorial foi um exemplo simples do envio de e-mail na documentação do nodemailer podemos ver outros exemplos mais complexos.

PS: Se você for usar um gmail como remetente terá que configurar o OAuth2 para autenticação. Link para resolver este problema.

FONTES:

--

--

Lucas Salvador
Training Center

Programador, estudante de Análise e Desenvolvimento de Sistemas e apaixonado por compartilhar conhecimento.