Cómo enviar correos electrónicos con Mailjet

Mailjet es un servicio de correo electrónico global de terceros que brinda a los usuarios de App Engine un nivel gratuito con 25,000 correos electrónicos por mes. Además, Mailjet ofrece las siguientes características:

  • Cumplimiento con la protección de datos europea.
  • Características de correo electrónico y capacidad de entrega, como configuración de prioridad personalizada y administración de regulación automatizada.
  • Una biblioteca de recursos de API integral en Go, PHP, Nodejs, Java, Python y Ruby para administrar cuentas secundarias, autenticación, contactos, campañas, cargas útiles personalizadas, estadísticas, eventos en tiempo real y análisis mediante la API de Event.
  • Asistencia las 24 horas, todos los días, en cualquier lugar del mundo y en más de 4 idiomas.
  • Capacidad de enviar correos electrónicos desde dominios que no sean gmail.com

Antes de comenzar

Antes de comenzar a enviar correos electrónicos con Mailjet, haz lo siguiente:

  1. Crea una cuenta de Mailjet. Como desarrollador de App Engine, puedes comenzar con 25,000 correos electrónicos gratuitos por mes.

  2. En Mailjet, agrega y verifica la dirección de correo electrónico del remitente.

  3. Toma nota de tu secreto y clave de API en tu Configuración de SMTP de Mailjet.

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

  5. Agrega el secreto y la clave de API de MailJet como variables de entorno a tu archivo app.yaml.

    1. Agrega los módulos de cliente REST de Jersey requeridos a tu aplicación. Por ejemplo, si usas Maven, agrega lo siguiente al archivo pom.xml del proyecto:

      <dependency>
        <groupId>com.mailjet</groupId>
        <artifactId>mailjet-client</artifactId>
        <version>${mailjet-version}</version>
      </dependency>
    2. Define la configuración de Mailjet, como el nombre del dominio y la clave de API en tu archivo app.yaml:

      env_variables:
        MAILJET_API_KEY: YOUR-MAILJET-API-KEY
        MAILJET_SECRET_KEY: YOUR-MAILJET-SECRET-KEY
    3. Importa la biblioteca Mailjet en el código de tu aplicación:

      
      package com.example.mailjet;
      
      import com.mailjet.client.ClientOptions;
      import com.mailjet.client.MailjetClient;
      import com.mailjet.client.MailjetRequest;
      import com.mailjet.client.MailjetResponse;
      import com.mailjet.client.errors.MailjetException;
      import com.mailjet.client.errors.MailjetSocketTimeoutException;
      import com.mailjet.client.resource.Emailv31;
      import java.io.IOException;
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import org.json.JSONArray;
      import org.json.JSONObject;
      

    Cómo enviar correos electrónicos

    Para enviar un mensaje en el código de tu aplicación, haz lo siguiente:

    1. Crea un cliente de Mailjet nuevo.

    2. Especifica los detalles y el contenido del mensaje, incluidos el correo electrónico y el nombre del remitente, el asunto, el cuerpo del mensaje y los destinatarios.

    3. Recupera la respuesta del servidor para comprobar el estado del mensaje.

    Por ejemplo:

    @SuppressWarnings("serial")
    @WebServlet(name = "mailjet", value = "/send/email")
    public class MailjetServlet extends HttpServlet {
      private static final String MAILJET_API_KEY = System.getenv("MAILJET_API_KEY");
      private static final String MAILJET_SECRET_KEY = System.getenv("MAILJET_SECRET_KEY");
      private MailjetClient client =
          new MailjetClient(MAILJET_API_KEY, MAILJET_SECRET_KEY, new ClientOptions("v3.1"));
    
      @Override
      public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException,
          ServletException {
        String recipient = req.getParameter("to");
        String sender = req.getParameter("from");
    
        MailjetRequest email = new MailjetRequest(Emailv31.resource)
            .property(Emailv31.MESSAGES, new JSONArray()
            .put(new JSONObject()
              .put(Emailv31.Message.FROM, new JSONObject()
                .put("Email", sender)
                .put("Name", "Mailjet Pilot"))
              .put(Emailv31.Message.TO, new JSONArray()
                .put(new JSONObject()
                  .put("Email", recipient)))
              .put(Emailv31.Message.SUBJECT, "Your email flight plan!")
              .put(Emailv31.Message.TEXTPART,
                  "Dear passenger, welcome to Mailjet! May the delivery force be with you!")
              .put(Emailv31.Message.HTMLPART,
                  "<h3>Dear passenger, welcome to Mailjet!</h3><br />"
                      + "May the delivery force be with you!")));
    
        try {
          // trigger the API call
          MailjetResponse response = client.post(email);
          // Read the response data and status
          resp.getWriter().print(response.getStatus());
          resp.getWriter().print(response.getData());
        } catch (MailjetException e) {
          throw new ServletException("Mailjet Exception", e);
        } catch (MailjetSocketTimeoutException e) {
          throw new ServletException("Mailjet socket timed out", e);
        }
      }
    }

    Estadísticas

    La carga útil de respuesta de una llamada a la API de Send de Mailjet proporciona un MessageID. Puedes usar el MessageID para acceder a información y estadísticas sobre el mensaje.

    Usa la operación GET de /message para obtener información básica sobre un mensaje, como el remitente, el destinatario y el tamaño del mensaje. Para obtener más información sobre estadísticas de mensajes, incluidas las respuestas de la API de muestra, consulta la guía de API de Mailjet.

    API de Event

    La API de eventos de Mailjet ofrece notificaciones en tiempo real a través de solicitudes HTTP (webhooks) de cualquier evento relacionado con los mensajes que enviaste; por ejemplo, cuándo se enviaron o cuándo se abrieron. Esta notificación de evento funciona para toda clase de mensajes, desde transacciones hasta campañas de marketing.

    Usa la API de Event para realizar acciones específicas de manera eficiente, como el registro de los mensajes de marketing enviados a tus clientes o la actualización de los contactos que anularon la suscripción en tu sistema de administración de relaciones con clientes (CRM). En lugar de sondear la API de Mailjet algunas veces al día, los datos se envían a medida que los eventos se producen, casi en tiempo real.

    También puedes agrupar los eventos, algo que resulta útil cuando se envían volúmenes más grandes. Para obtener más instrucciones, consulta la documentación de Mailjet.

    API de análisis para correos electrónicos entrantes

    También puedes recibir y analizar correos electrónicos con Mailjet, con la entrega del contenido a un webhook. Mailjet organiza toda la información para que puedas guardarla en tu CRM o base de datos.

    Como una API de eventos, la API de análisis notifica casi en tiempo real a un webhook específico que envía datos a tu aplicación cuando un mensaje nuevo coincide con una ruta predefinida. Los correos electrónicos se envían a tu aplicación estructurados como un paquete JSON, con toda la información útil que necesitas, como remitente, destinatario, asunto, cuerpo y encabezados.

    Para obtener más información, incluidos los campos adicionales que se envían con cada correo electrónico, y las instrucciones para la configuración y el uso del DNS, consulta la documentación de la API de Parse de Mailjet.

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

Enviar comentarios sobre...

Entorno flexible de App Engine para documentos de Java