Envío de correos electrónicos con IBM Bluemix

Envío de correos electrónicos con IBM Bluemix

¿Quieres enviar correos electrónicos (emails) desde tu aplicación? Acá puedes encontrar el paso a paso de como hacerlo rápidamente con el servicios de Sendgrid en IBM Bluemix.

Envío de correos con Sendgrid en Bluemix.

En este tutorial, encontraremos el paso a paso de como crear una aplicación en Bluemix que envíe correos electrónicos usando el servicio de Sendgrid, en este caso crearemos una aplicación en Node.js la cual despliega una API REST para el envío de mensajes y un formulario en HTML para probar esa API desplegada.

  1. Creación del ambiente en Bluemix:
    • Para empezar, Iniciamos sesión en Bluemix y sobre el Dashboard seleccionamos “Crear Aplicación”:
      crearApp
    • En el tipo de aplicación, seleccionamos “Aplicación Web”:
      1b
    • Sendgrid cuenta con librerías para la mayoría de lenguajes, puedes encontrar cada librería en el siguiente link (https://sendgrid.com/docs/Integrate/libraries.html), en este caso usaremos el Runtime de “Node.js” y damos click en “Continuar”:
      1c
    • Ingresamos el nombre que le queremos dar a nuestra aplicación, en mi caso, emailDemo:
      1d
    • Después de que Bluemix despliega nuestra aplicación, vamos a la “Visión general”  y ahí damos click en “Añadir un servicio o API”:
      1e
    • En el Catálogo de servicios buscamos “Sendgrid” bajo la category “Web y aplicación”:
      1f
    • En la descripción del servicio ingresamos el nombre que deseamos asignar, en mi caso SendGrid-emailDemo y el plan que deseamos usar, en mi caso Free Package. Después de esto damos click en “Crear”:
      1g
      En esta descripción puedes encontrar el detalle de cada uno de los planes y sus diferencias.
    • Después de crear y asociar el servicio, Bluemix nos lleva de regreso a la “Visión general” de la aplicación, acá podemos ver que ahora contamos con Sendgrid, y si damos click sobre “Mostrar credenciales”, podremos ver los datos necesarios para la conexión y uso de este:
      1h
      NOTA: Bluemix permite únicamente una instancia de Sendgrid por cuenta, en el caso en que ya tengas una instancia creada, debes usar la opción de “Asociar Servicio” y seleccionarla.
      NOTA: Los datos de conexión son creados como variables de entorno en el runtime de la aplicación, de tal forma que pueden ser llamados en tiempo de ejecución sin necesidad de quemarlos dentro del código.
  2. Desarrollo de la aplicación:
    • Después de crear la aplicación en Bluemix, ahora debemos desarrollar la funcionalidad que espera el llamado de un cliente y se conecta con Sendgrid para enviar el correo electrónico.
    • El código de la aplicación lo puedes descargar de JazzHub en el siguiente link: https://hub.jazz.net/project/lflorez/emailDemo
    • El Proyecto es un programa sencillo que crea una API REST esperando un llamado POST con los siguientes parámetros:
      1. to: Dirección de correo electrónico de la persona a la que se envía el correo.
      2. from: Dirección de correo electrónico de la persona que envía el correo.
      3. subject: El asunto del correo.
      4. nombrePersona: nombre de la persona a la que se envía el correo.NOTA: Dado que la API no queda expuesta con autenticación, no se permite modificar el cuerpo del correo electrónico. El cual es un mensaje de agradecimiento por el uso de la Demo.
    • La línea base de la aplicación demo fue generada con el módulo express-generator (https://www.npmjs.com/package/express-generator) y los cambios importantes a tener en cuenta en el código son:
      • package.json:
        Se agregan los módulos sendgrid para el envió de correos electrónicos y cfenv para manejar las variables de ejecución generadas por Bluemix.
        2a
      • app.js:
        Se agrega la ruta “/api/sendMail” para esperar los llamados a la API:
        2b
      • Se agrega el código encargado de manejar la ruta de la API sendMail, en el directorio “routes/api/sendMail.js” , el cual tiene únicamente la recepción del llamado POST y el envío de los datos al controlador:
        2c
      • El archivo encargado de conectarse con Sendgrid para el envío del correo es el que se encuentra en el directorio “controllers/sendMail.js”,  en este encontramos la definición de cada uno de los parámetros necesarios para hacer el llamado a la API de Sendgrid:
        2d
      • El último archivo para tener en cuenta es el “config/config.js”, el cual es el encargado de tomar las variables de entorno brindadas por Bluemix, o de definir los datos de conexión a Sendgrid en el caso que se ejecute la aplicación localmente (vistos al final del punto 1):
        2e
      • formulario.html:
        Este es un documento HTML, que encuetras en la ruta, “/public” con un formulario sencillo para probar la API, acá es muy importante modificar la acción del formulario para que haga un llamado POST a las URL de la API:
        2f
  3. Publicar la aplicación:
    Despues de tener la aplicación lista la podemos subir con el cliente de linea de comandos de Cloud Foundry (https://github.com/cloudfoundry/cli/releases):

    • Abrimos la línea de comando y nos ubicamos en el directorio raíz de la aplicación:
      3a
    • Nos conectamos a Bluemix, con el comando “cf api https://api.ng.bluemix.net
    • Hacemos el Login, con nuestro nombre de usuario, organización y espacio: “cf login -u <correo@micuenta.com> -o <organizacion> -s <espacio>”
    • Subimos la aplicación: “cf push emailDemo”
    • Después de subir la aplicación, la podemos probar ingresando a la url asignada por Bluemix: http://<nombredelapp>.mybluemix.net:
      4a
  4. Probar la aplicación:
    1. Por último podemos probar la API usando el cliente REST de Chrome, POSTMAN (https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm):
      5a
      O utilizando el formulario de prueba en la url: http://<nombreDeLaApp>.mybluemix.net/formulario.html
      6a

Con estos pasos ya tienes una aplicación funcionando en Bluemix que envía correos electrónicos, la idea principal de esto, es que la utilices como base para integrarla a las aplicaciones que estés creando.

Espero este tutorial te sea útil, no dudes en colocar cualquier comentario, duda o sugerencia relacionado a este contenido o a IBM Bluemix.

1 Comment
  1. Excelente tutorial.

    Agregar que hay que recordar modificar el nombre del servidio de SendGrid en el archivo manifest.yml

    applications:
    – services:

    Saludos cordiales.

TUS COMENTARIOS: