Enviar correo con Nodemailer

Juan Carlos G 2020-01-17

📌 Suscríbete 🤘

Hey viajero web ya estas en EWebik, y hoy mejoraremos nuestra página web que hemos venido creando en los vídeos y clases anteriores, vamos a mejorar nuestra primera página web con NodeJS, agregándole una área de contacto para que nuestros usuarios y clientes puedan comunicarse con nosotros directamente desde nuestra página web, recuerda que esta página que veras en el vídeo viene desde esta otra clase ¿Cómo crear una página web responsiva con Bootstrap?, así que no te puedes perder ningún vídeo y por favor compártelo para que pueda seguir subiendo mas vídeos a YouTube.

 

📌 Suscríbete a mi canal y activa la campanita para que no te pierdas ningún video 🤘

 

¿Que aprenderás además de Nodemailer?

Esta es una clase muy importante ya que le da ese toque profesional a una página web, pero sobre todo aumenta la confianza de tus usuarios ya que al tener un medio de comunicación con los que están detrás de un sitio web, disminuye esa frialdad y aumentan las posibilidades de cerrar una venta, aquí te dejo lo que aprenderás ene este vídeo.

  • Aprende a crear un formulario en Bootstrap
  • Enviar solicitudes POST a un entorno NodeJS con express
  • Utilizaremos la librería AXIOS con la cual realizaremos los request al servidor NodeJS
  • Estableceremos la lógica con la cual se atienen los request o solicitudes de los clientes
  • Configuración y utilización de Nodemailer SMPT para el envio de correos en NodeJS
  • Manejo de promesas en Javascript, lo cual es muy importante si quieres aprender NodeJS
  • Manejo de clases en NodeJS

Como puedes observar en este vídeo aprenderás aspectos fundamentales de una página web y convertirá tu página en una herramienta poderosa de captura de leads para tus próximas campañas de marketing.

 

 

 

 

¿Que necesito para usar Nodemailer?

Si has visto todos los vídeos ya tendrás instaladas todas las herramientas e incluso estoy seguro tienes ya tu página web creada, pero si no los tienes solo descarga he instala Visual Studio Code o cualquier otro editor de código que sea de tu agrado. 

Si no tienes un correo para hacer tus practicas puedes hacerlo desde tu propio Gmail aquí te dejo este post done aprenderás a utilizar el servicio SMTP de Gmail

 

¿Que es Nodemailer?

Es un paquete de distribución de Node Js que podemos integrar a nuestro proyecto y nos permite enviar email a un servidor SMTP en formato texto o HTML, entre otras funcionalidades que veremos mas adelante.

 

¿Cómo enviar un correo con Nodemailer?

Aquí te dejo un pequeño resumen de como puedes enviar un correo o email en Node JS utilizando la paquetería de Nodemailer.

 

npm i nodemailer

 Para poder enviar corres desde NodeJS debes instalar en tu proyecto la paquetería Nodemailer y lo puedes hacer ingresando a la carpeta de tu proyecto desde la terminal de comandos y escribir el siguiente comando npm

npm i nodemailer

Con lo cual ya podrás hacer uso del envió de correos.

 

Configuración de Nodemailer

Aquí tienes la configuración básica que debes considera al memento de enviar un correo electrónico con Nodemailer y lo haré creando un objeto JSON con los parámetros que solicita esta paquetería.

 

let jConfig = {
        "host":"tu-host", 
       "port":"el-puerto", 
       "secure":false, 
      "auth":{ 
              "type":"login", 
              "user":"tu-correo@ewebik.com.mx", 
             "pass":"tu-password" 
   }
};

 

Donde:

  • host, hace referencia al nombre o IP de tu servidor SMTP
  • port, puerto asignado por el servidor SMTP para el envió de correos
  • secure, esto se entiende mejor de la siguiente manera si usas https su valor debe ser true, de lo contrario false
  • auth, es un JSON con los datos de autentificación  al servidor SMTP
  • type, escribe login para acceder al servidor SMTP
  • user, usuario registrado
  • pass, contraseña del usuario registrado

Como ves son datos simples y que tu administrador de sistemas puede proporcionarte en caso de que no los tengas a la mano.

 

Enviar correo con Nodemailer en NodeJS

Primero definamos el JSON de datos que se debe crear para establecer la comunicación con el servidor de correos, en donde se incluyen los datos de los destinatarios, asunto, mensaje, etc., y lo haremos de la siguiente manera.

 

let email ={ 
       from:"ewebik@ewebik.com.mx",  //remitente
       to:"contacto@ewebik.com.mx",  //destinatario
       subject:"Nuevo mensaje de usuario",  //asunto del correo
       html:` 
           <div> 
           <p>Hola amigo</p> 
           <p>Esto es una prueba del vídeo</p> 
           <p>¿Cómo enviar correos eletrónicos con Nodemailer en NodeJS </p> 
           </div> 
       ` 
   };

 

Donde:

  • from, es el correo origen o el correo que esta enviando el email
  • to, el destinatario quien debe recibir el correo
  • subject, asunto del correo
  • html, Nodemailer nos permite enviar un mensaje codificado en lenguaje HTML lo cual es muy útil en campañas de marketin

 

Objeto createTransport de Nodemailer

Ahora que tienes definido la configuración a utilizar y los datos del correo a enviar lo primero que debes hacer es crear un objeto transportador a través del siguiente método "createTransport".

 

let createTransport = nodemailer.createTransport(jConfig);

 

Este objeto crea una variable de transporte que se comunicara con el servidor SMTP y enviará el correo, por ejemplo:

 

createTransport.sendMail(email, function (error, info) { 
              if(error){ 
                   console.log("Error al enviar email"); 
              } else{ 
                   console.log("Correo enviado correctamente"); 
              } 
              createTransport.close(); 
});

 

Este pedazo de código es muy fácil de leer, lo que indica es que el objeto createTransport cuenta con un método de nombre sendMail el cual recibe como parámetros los datos del correo que se quiere enviar y regresa un callback o función que proporciona un argumento error el cual nos indica si el correo fue enviado o si no fue enviado nos da un pequeño mensaje con el error.

Listo así de fácil puedes enviar un correo en Node JS, te recomiendo que veas el vídeo ya que es un caso practico con el objetivo de que al final tengas una página web funcional a partir de todos estos conceptos.

 

 


EWebik.com

Juan Carlos G

Electrónica y diseño web


Durante años he desarrollado plataformas dedicadas al rastreo satelital y varios sitios web que se encuentran en la primera página de Google, y hoy quiero compartir contigo lo que se en tecnologías como Node JS, PHP, C# y Bases de datos, si quieres apoyarme sígueme en mis redes sociales y suscríbete a mi canal de YouTube.

@Puedes seguirme en mis redes

📌 Suscríbete 🤘