Envía correos electrónicos con SendGrid

Puedes utilizar SendGrid para potenciar tus correos electrónicos en App Engine. SendGrid puede mejorar tu capacidad de entrega y ofrecer transparencia sobre lo que realmente sucede con los correos electrónicos que envía tu app. Con la interfaz o la API de SendGrid, puedes ver estadísticas sobre correos electrónicos abiertos, clics, suscripciones anuladas, informes de spam y más.

Precios

Los clientes de App Engine pueden enviar 12,000 correos electrónicos por mes sin costo si se registran en el plan de la API de Email de SendGrid a través de Google Cloud Platform Console. Ten en cuenta que Google recibe una compensación por los clientes que se registran en una cuenta de pago.

Bibliotecas de SendGrid

Puedes enviar correos electrónicos con SendGrid a través de una retransmisión de SMTP o con una API de Web.

Para integrar SendGrid a tu proyecto de App Engine, utiliza las bibliotecas cliente de SendGrid.

Antes de comenzar

Para enviar un correo electrónico mediante SendGrid:

  1. Regístrate en el plan de la API de Email de SendGrid.
  2. Anota la clave de API de SendGrid.
  3. Selecciona o crea un proyecto de GCP nuevo en Google Cloud Platform Console y, luego, asegúrate de que exista una aplicación de App Engine y de que la facturación esté habilitada:

    Ir a App Engine

    El panel se abrirá si ya existe una aplicación de App Engine en tu proyecto y si la facturación está habilitada. De lo contrario, sigue las instrucciones para seleccionar una región y habilitar la facturación.
  4. Agrega tu clave de API de SendGrid a la sección de variables del entorno en app.standard.yaml.
  5. Agrega la biblioteca cliente de SendGrid Node.js al package.json de tu aplicación. Por ejemplo:
    npm install --save sendgrid

Envía correos electrónicos

Puedes crear una instancia de SendGrid y utilizarla para enviar correos electrónicos.

En el código de muestra a continuación, se ve cómo enviar un correo electrónico y especificar algunos errores de manejo:

'use strict';

const express = require('express');
const path = require('path');
const bodyParser = require('body-parser');

// The following environment variables are set by app.yaml (app.flexible.yaml or
// app.standard.yaml) when running on Google App Engine,
// but will need to be manually set when running locally.
const SENDGRID_API_KEY = process.env.SENDGRID_API_KEY;
const SENDGRID_SENDER = process.env.SENDGRID_SENDER;
const Sendgrid = require('sendgrid')(SENDGRID_API_KEY);

const app = express();

// Setup view engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

// Parse form data
app.use(bodyParser.urlencoded({extended: false}));

app.get('/', (req, res) => {
  res.render('index');
});

app.post('/hello', (req, res, next) => {
  const sgReq = Sendgrid.emptyRequest({
    method: 'POST',
    path: '/v3/mail/send',
    body: {
      personalizations: [
        {
          to: [{email: req.body.email}],
          subject: 'Hello World!',
        },
      ],
      from: {email: SENDGRID_SENDER},
      content: [
        {
          type: 'text/plain',
          value: 'Sendgrid on Google App Engine with Node.js.',
        },
      ],
    },
  });

  Sendgrid.API(sgReq, err => {
    if (err) {
      next(err);
      return;
    }
    // Render the index route on success
    res.render('index', {
      sent: true,
    });
  });
});

if (module === require.main) {
  const PORT = process.env.PORT || 8080;
  app.listen(PORT, () => {
    console.log(`App listening on port ${PORT}`);
    console.log('Press Ctrl+C to quit.');
  });
}

module.exports = app;

Agrega los detalles de la cuenta y, luego, edita la dirección de correo electrónico y otros contenidos del mensaje.

Para obtener más información sobre la configuración de correo electrónico y ver ejemplos, consulta la biblioteca de SendGrid-Node.js.

Obtén información en tiempo real

Además de enviar correos electrónicos, SendGrid puede recibirlos o comprender los que ya enviaste mediante webhooks.

API de Event

Una vez que comienzas a enviar correos electrónicos desde tu aplicación, puedes ver las estadísticas que SendGrid recopiló para evaluar tu programa de correos electrónicos. Puedes utilizar la API de Event para acceder a estos datos. Por ejemplo, cuando un destinatario abre o hace clic en un correo electrónico, SendGrid puede enviar un JSON descriptivo a tu app de Google App Engine que puede reaccionar al evento o almacenar los datos para utilizarlos más adelante.

En la documentación de la API de Event, se muestra cómo configurar un webhook, describe los nueve tipos de eventos y muestra los campos incluidos en las devoluciones de llamada de eventos.

API de Inbound Parse

SendGrid puede recibir correos electrónicos. La API de Inbound Parse se puede utilizar para aplicaciones interactivas, como los tickets de asistencia automatizados.

La API de Parse es un webhook que envía datos a tu aplicación cuando hay contenido nuevo disponible. En este caso, se llama al webhook cada vez que se recibe un correo electrónico nuevo en el dominio que asociaste con el correo electrónico entrante.

Los correos electrónicos se envían a la aplicación con una estructura JSON y con los campos remitente, destinatario, asunto y cuerpo del texto. Se permite adjuntar archivos de hasta 20 MB.

Puedes encontrar más detalles en la documentación de la API de Parse, incluidos los campos adicionales que se envían con cada correo electrónico y las instrucciones para la configuración y uso del DNS.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación del entorno estándar de App Engine para Node.js