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.
Requisitos previos
Sección titulada «Requisitos previos»- 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.
Conectar en Frontmail
Sección titulada «Conectar en Frontmail»- Abre Servicios de correo → Añadir servicio → Mailjet.
- 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 |
- Haz clic en Verificar y guardar: Frontmail llama a la API de Mailjet con el par de claves.
- El servicio se guarda cuando la comprobación es correcta. Ambas claves se cifran con cifrado de sobre de AWS KMS.
DNS: SPF, DKIM y DMARC
Sección titulada «DNS: SPF, DKIM y DMARC»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"
; DKIMmailjet._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 av=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=noney endurécelo más adelante.
Regiones
Sección titulada «Regiones»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).
Sandbox y límites
Sección titulada «Sandbox y límites»- 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
SandboxModede la API de Mailjet valida los mensajes sin enviarlos; Frontmail no lo usa.
Webhooks (seguimiento de la entrega)
Sección titulada «Webhooks (seguimiento de la entrega)»Mailjet los llama Event notifications (webhooks).
-
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> -
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> -
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 |
- 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.
Errores habituales
Sección titulada «Errores habituales»- 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 comoheld_service_errory 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,
failedy se devuelve el crédito. - transient: 5xx, 429, tiempos de espera agotados. Se reintenta con espera exponencial; tras el último intento,
failedy 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. |
Lista de comprobación
Sección titulada «Lista de comprobación»- 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