Enviando E-mails com Node.js
É 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.
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.
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: