Emails do Node.js? Simples … talvez muito simples.

Enviar e-mails para clientes em potencial com base na interação com um site parecia um trabalho de terceiros até que encontrei isso. Nodemailer é um pacote de nó simples que pode ser incorporado em seu servidor de arquivos node.js para enviar e-mails com base na interação do usuário com seu site.

$ npm install nodemailer

Antes de começarmos, eu instalo o Nodemailer no meu diretório local.

var http = require('http');

function start(route, handle) {
function onRequest(request, response) {

console
.log('request received.');
response
.writeHead(200, {"Content-Type":
"text/plain"});
response
.write('Starting point.');
response
.end();
}

http
.createServer(onRequest).listen(3214);
console
.log("Server has started.");
}

exports
.start = start;

Primeiro, construo um servidor simples e exporto a start()função.

var nodemailer = require('nodemailer');
var server = require('./server');
server
.start();
// create reusable transporter object using SMTP transport
var transporter = nodemailer.createTransport({
service
: 'Gmail',
auth
: {
user
: 'email@gmail.com',
pass: 'password'
}
});

Eu importo meu servidor e Nodemailer . Em seguida, inicio o servidor e, usando um método Nodemailer , estabeleço uma conexão com informações de uma conta de e-mail criada anteriormente. Isso cria um objeto reutilizável que pode enviar vários emails para vários endereços simultaneamente ou um de cada vez.createTransport()

// setup e-mail data with unicode symbols
var mailOptions = {
// sender address
from: 'name ✔ <email@gmail.com>',
// list of receivers
to
: 'friend@gmail.com',
// Subject line
subject
: 'Testing test ✔',
// plaintext body
text
: 'It works! ✔',
// rich text html body
html
: "<p>It works</p>",
};

Em seguida, crio o e-mail no formato JSON com todos os campos que você normalmente veria em um e-mail (de, para, assunto, etc.). Posso enviar como html e / ou com texto para clientes plainview.

// send mail with defined transport object
transporter
.sendMail(mailOptions, function(error, info){
if(error){
console
.log(error);
}else{
console
.log('Message sent: ' + info.response);
}
});

Por fim, usando o transportador, envio o e-mail pelo método , que envia o e-mail e registra o resultado. As opções adicionais incluem a capacidade de anexar arquivos e incluir diferentes formatos de seu e-mail para vários clientes de e-mail.sendMail()

Como você pode ver, com apenas algumas linhas simples de código, posso enviar um e-mail com uma chamada para o servidor. Eu poderia facilmente preencher o e-mail com o e-mail fornecido pelo usuário ou acionar tipos específicos de e-mails com base nas informações do usuário (por exemplo, usuário pela primeira vez ou solicitação de informações específicas).

A melhor parte do Nodemailer é a simplicidade com que pode ser usado. Assim que descobri o pacote, levou apenas alguns minutos para conseguir enviar e-mails com um simples acesso ao meu servidor.