Ir al contenido

Mailjet

Mailjet (parte de Sinch) es una plataforma europea de correo tanto transaccional como de marketing. Por defecto aloja los datos en la UE y tiene un plan gratuito aprovechable, lo que la hace popular entre las pequeñas empresas europeas.

Elige Mailjet si quieres un proveedor con sede en la UE y plan gratuito, o si ya envías newsletters con Mailjet y quieres el correo transaccional en la misma cuenta. Para envíos puramente transaccionales con el mayor foco en la entregabilidad, consulta Postmark; para alojamiento en la UE con una API para desarrolladores, Mailgun UE. Comparativa: resumen de los servicios.

  • Una cuenta de Mailjet (las cuentas nuevas pueden pasar por una breve revisión de activación).
  • Un remitente validado: añade tu dominio en Account settings → Senders & Domains → Add domain y autentícalo (SPF + DKIM) o, como mínimo, valida la dirección From concreta.
  • Un par de claves de API (API key + secret key). Las claves de Mailjet no tienen permisos limitados, así que la opción con menos privilegios es una clave de subcuenta dedicada: Account settings → REST API → API Key Management → Create a sub-account API key. Una subcuenta tiene sus propios remitentes, estadísticas y cuota, y se puede revocar sin tocar tu clave principal.
  1. Abre Servicios de correo → Añadir servicio → Mailjet.
  2. Rellena los campos:
Campo Dónde encontrarlo Ejemplo
Clave de API Account settings → REST API → API Key Management a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
Clave secreta En la misma página (haz clic para mostrarla; se puede regenerar) f6e5d4c3b2a1…
Usuario del webhook Opcional: el usuario que pones en la URL del webhook (ver más abajo) frontmail
Contraseña del webhook Opcional: la contraseña correspondiente long-random-string
Máx. de correos por segundo Opcional; por defecto 10/s 5
  1. Haz clic en Verificar y guardar: Frontmail llama a la API de Mailjet con el par de claves.
  2. El servicio se guarda cuando la comprobación es correcta. Ambas claves se cifran con cifrado de sobre de AWS KMS.

Mailjet muestra los valores en Senders & Domains → tu dominio → Authentication settings:

; SPF: combínalo con tu registro SPF actual (¡solo uno por dominio!)
example.com. TXT "v=spf1 include:spf.mailjet.com ~all"
; DKIM
mailjet._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNAD…"
; Propiedad del dominio (solo si Mailjet lo pide)
mailjet._a1b2c3d4.example.com. TXT "a1b2c3d4e5f6…"
; DMARC
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
  • Si ya tienes v=spf1 include:_spf.google.com ~all, cámbialo a v=spf1 include:_spf.google.com include:spf.mailjet.com ~all; no añadas un segundo registro SPF.
  • El remitente del sobre de Mailjet es su propio dominio de rebotes, así que la alineación DMARC depende de DKIM: asegúrate de que DKIM aparece como OK.
  • Empieza DMARC con p=none y endurécelo más adelante.

Frontmail se comunica con api.mailjet.com. Mailjet guarda los datos en la UE por defecto. Mailjet también tiene una infraestructura separada en EE. UU. (api.us.mailjet.com) para las cuentas creadas allí; de momento Frontmail solo admite el endpoint predeterminado, así que usa una cuenta creada en la plataforma estándar (UE).

  • Plan gratuito: 200 correos al día, 6000 al mes.
  • Los planes de pago eliminan el límite diario y se facturan por meses.
  • El equipo de cumplimiento de Mailjet puede poner las cuentas nuevas en revisión si las tasas de rebote o de quejas son altas; el envío queda bloqueado hasta que termina la revisión.
  • El indicador SandboxMode de la API de Mailjet valida los mensajes sin enviarlos; Frontmail no lo usa.

Mailjet los llama Event notifications (webhooks).

  1. Copia la URL del webhook de la página del servicio en Frontmail (botón de copiar):

    https://api.frontmail.dev/webhooks/providers/mailjet/<token>
  2. Recomendado: protégela con Basic auth. Mailjet no tiene un campo de autenticación aparte, así que pon las credenciales en la URL e introduce los mismos valores en los campos Usuario del webhook / Contraseña del webhook de Frontmail:

    https://frontmail:long-random-string@api.frontmail.dev/webhooks/providers/mailjet/<token>
  3. En Mailjet, abre Account settings → Event notifications (webhooks) y pega la URL para estos eventos:

Evento de Mailjet Evento de Frontmail
Sent (aceptado por el servidor del destinatario) delivered
Bounce – hard_bounce: true bounced: se añade a la lista de supresión
Bounce – soft, Blocked se registra como rebote temporal
Spam complained: se añade a la lista de supresión
Open opened
Click clicked
  1. Mailjet envía una llamada de prueba al guardar; el evento debería aparecer en el registro de eventos del servicio.

Verificación de la firma: Mailjet no firma los payloads de los eventos. El token secreto de la URL identifica el servicio y, si configuras una contraseña del webhook, Frontmail rechaza todas las solicitudes cuya Basic auth no coincide.

Frontmail usa el CustomID de Mailjet con el ID del mensaje de Frontmail para que los eventos se asocien al mensaje correcto.

  • auth: el servicio no funciona (clave de API o secreta incorrecta, 401/403, remitente o dominio sin validar, cuenta bloqueada). El servicio se marca como unhealthy; el propietario recibe un correo y un aviso en el panel. Si la plantilla tiene un servicio de respaldo, este toma el relevo; si no, se devuelve el crédito y el mensaje espera en la cola de correos retenidos como held_service_error y se envía automáticamente cuando arreglas el servicio (se vuelve a comprobar al guardar y en la comprobación de estado diaria).
  • permanent: este mensaje no se puede enviar (destinatario no válido, error de validación 400). Servicio de respaldo si está configurado; si no, failed y se devuelve el crédito.
  • transient: 5xx, 429, tiempos de espera agotados. Se reintenta con espera exponencial; tras el último intento, failed y se devuelve el crédito.
Respuesta de Mailjet Clase Qué hacer
401 – API key authentication/authorization failure auth Revisa el par de clave de API y clave secreta; regéneralas si hace falta.
403 – Forbidden / cuenta bloqueada o en revisión auth Revisa el panel de Mailjet y contacta con su soporte.
400 – «The sender … is not validated / not authorized» auth Valida la dirección From o el dominio en Senders & Domains (en la subcuenta correcta).
400 mj-0013 – «… is an invalid email address» permanent Consulta destinatario no válido.
400 – otros errores de validación (asunto demasiado largo, adjunto demasiado grande) permanent Corrige la plantilla; consulta Plantillas HTML.
429 – Too many requests transient Se alcanzó el límite de velocidad o el diario; Frontmail reintenta. Baja Máx. de correos por segundo.
500 / 503, tiempo de espera agotado transient Caída de Mailjet: Frontmail reintenta.
  • Dominio añadido y autenticado en Mailjet (include de SPF + mailjet._domainkey)
  • Un único registro SPF combinado; DMARC p=none
  • Par de claves de API de subcuenta dedicado
  • Probar conexión funciona
  • URL de notificación de eventos con credenciales de Basic auth y los mismos valores en Frontmail
  • Eventos activados: sent, bounce, blocked, spam (+ open, click)
  • Volumen diario dentro del límite de tu plan