¿Cómo enviar correos con nodemailer en Node.js?

Hola viajero web, 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 Node.js agregándole una área de contacto para que nuestros usuarios y clientes puedan comunicarse con nosotros directamente desde nuestra página web, todo esto lo vamos hacer a través del envió de correos en Nodemailer.

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.

¿Cómo enviar correos con nodemailer en Node.js?

by Juan Carlos García

11-Jun-2023

(5)


InicionodejsNodemailer

¿Qué aprenderás además de Nodemailer?

Esta es una clase muy importante, ya que le darás un toque profesional a tu página web al agregar una área de contacto, aumentando la confianza de tus usuarios al tener un medio de comunicación con las personas que están detrás de un sitio web, disminuyendo la frialdad y aumentando 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 Node.js 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.

¿Qué necesito para usar Nodemailer?

Principalmente necesitaremos:

  • Tener instalado Node.js.
  • Un gestor de paquetes como NPM.
  • Un editor de código como Visual Studio Code.
  • Acceso a un Servicio SMTP para envío de correos.

Si has visto todos los vídeos de este pequeño curso, estoy seguro que ya tienes instaladas todas las herramientas necesarias para usar Node.js e incluso estoy seguro que ya tienes tu página web creada, no obstante, si no has visto los vídeos anteriores te invito a verlos para que comprendas mejor esta clase.

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 y hacer tus pruebas.

¿Qué es Nodemailer?

 

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.

¿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.

Instalación 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", 
             "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.

 

Enviando correos con Nodemailer en Node.js

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",  //remitente
       to:"contacto@ewebik.com",  //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 marketing

 

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.

Juan Carlos

Juan Carlos García

Desarrollador de software / SEO

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.

EWebik

Diseño de páginas web y aplicaciones moviles.

© 2024 EWebik