Mailjet: Guia tecnica completa para el email transaccional en 2026

Por CaptainDNS
Publicado el 20 de enero de 2026

Dashboard Mailjet con configuracion API transaccional y autenticacion de email
TL;DR
  • Mailjet (Sinch) procesa 300+ mil millones de emails/ano con una API v3.1 moderna limitada a 50 mensajes por llamada.
  • DKIM obligatorio: selector mailjet, claves de 2048 bits por defecto desde abril 2024, 4096 bits disponible.
  • El alineamiento SPF falla por defecto (Return-Path en dominio Mailjet): cuenta solo con DKIM para DMARC.
  • IP dedicada incluida a partir del plan Premium 100k (95$/mes) con warm-up de 2-6 semanas obligatorio.
  • Plan Free: 6.000 emails/mes pero limitado a 200/dia, ideal para dev/staging.

Introduccion

Mailjet se ha establecido como un actor principal del email transaccional en Europa, fundado en 2010 en Nantes antes de ser adquirido por Sinch en diciembre de 2021 por 1,9 mil millones de dolares. Hoy en dia, la plataforma procesa mas de 300 mil millones de emails por ano y sirve a mas de 100.000 clientes de pago en mas de 150 paises.

Pero detras de la interfaz de marketing y el editor drag-and-drop se esconden sutilezas tecnicas criticas: diferencias entre API v3 y v3.1, configuracion DKIM con eleccion de tamano de clave, alineamiento DMARC fallando por defecto en SPF, limites estrictos del plan Free (solo 200 emails/dia), y restricciones de IP dedicada con warm-up obligatorio.

Esta guia esta dirigida a desarrolladores, DevOps y administradores de sistemas que integran Mailjet para el email transaccional. Detallamos los puntos bloqueantes, las configuraciones criticas, y las decisiones tecnicas segun tu stack y tus volumenes.

Mailjet en el ecosistema Sinch

Historico y adquisiciones

Mailjet fue fundado en 2010 en Nantes por Wilfried Durand y Julien Tartarin a traves de eFounders (hoy Hexa). La trayectoria de adquisiciones:

FechaEvento
Febrero 2011Lanzamiento publico
Octubre 2019Adquisicion por Mailgun (Thoma Bravo)
Diciembre 2021Adquisicion por Sinch por 1,9 Md$
2025300+ mil millones de emails/ano

Posicionamiento vs Mailgun

Dentro del ecosistema Sinch, la diferenciacion es clara:

PlataformaObjetivoPunto fuerte
Sinch MailjetMarketeros, PYMESInterfaz intuitiva, editor colaborativo
Sinch MailgunDesarrolladoresAPI-first, 20+ APIs, SDKs avanzados
Sinch Email on AcidQA emailTest y previsualizacion cross-client

Cifra clave: durante el Black Friday 2025, Mailjet y Mailgun entregaron 20,4 mil millones de emails en noviembre (+32% interanual).

API REST: v3 vs v3.1

Mailjet ofrece dos versiones de su Send API. La v3.1 es recomendada para nuevos proyectos.

Comparacion API v3 y v3.1 Mailjet

Diferencias clave

Caracteristicav3v3.1 (recomendada)
EndpointPOST /v3/sendPOST /v3.1/send
Estructura payloadRecipients arrayMessages array obligatorio
Nombrado propiedadesGuiones (Html-part)CamelCase (HTMLPart)
Mensajes por llamada10050
VariablesVarsVariables
TemplatesMj-TemplateIDTemplateID
RespuestaEstado simpleDetallada con MessageUUID, MessageHref

Estructura de peticion v3.1

{
  "Messages": [{
    "From": {"Email": "sender@captaindns.com", "Name": "Remitente"},
    "To": [{"Email": "dest@captaindns.com", "Name": "Destinatario"}],
    "Subject": "Confirmacion pedido {{var:order_id}}",
    "HTMLPart": "<h1>Gracias {{var:firstname}}</h1>",
    "Variables": {"firstname": "Juan", "order_id": "12345"},
    "TemplateID": 12345,
    "TemplateLanguage": true
  }]
}

Autenticacion API

La autenticacion utiliza Basic Auth con:

  • Username: API Key (publica)
  • Password: Secret Key (privada)
curl -X POST https://api.mailjet.com/v3.1/send \
  -u "$API_KEY:$SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"Messages": [...]}'

Recomendacion: renovar la Secret Key cada 90 dias.

SDKs oficiales

LenguajePaqueteInstalacion
PHPmailjet-apiv3-phpcomposer require mailjet/mailjet-apiv3-php
Node.jsnode-mailjetnpm install node-mailjet
Pythonmailjet-restpip install mailjet-rest
Gomailjet-apiv3-gogo get github.com/mailjet/mailjet-apiv3-go/v4
Javamailjet-clientMaven com.mailjet:mailjet-client:6.0.0
Rubymailjet-gemgem install mailjet
C#/.NETMailjet.ApiNuGet Mailjet.Api

Limitacion importante: Mailjet no soporta el parametro send_at para emails transaccionales. La programacion de envios solo esta disponible para campanas de marketing via /campaigndraft.

SMTP Relay

El SMTP relay sigue siendo relevante para infraestructuras existentes y CMS legacy.

Configuracion

Servidor SMTP: in-v3.mailjet.com
Puertos: 25 (STARTTLS), 465 (SSL/TLS), 587 (recomendado), 2525 (alternativo)
Username: [API Key]
Password: [Secret Key]
Cifrado: TLS soportado en todos los puertos

Headers X-Mailjet-* para funcionalidades avanzadas

HeaderUso
X-MJ-CustomIDIdentificador personalizado para tracking
X-MJ-EventPayloadPayload devuelto en webhooks
X-MJ-CampaignAgrupacion de mensajes
X-MJ-TemplateIDID del template Mailjet
X-MJ-TemplateLanguageActiva el motor de templates (true)
X-MJ-VarsVariables JSON para personalizacion
X-MJ-TrackOpen / X-MJ-TrackClickOverride tracking (0/1)

SMTP vs API: cuando elegir que?

Privilegia SMTP si:

  • Infraestructura existente (Postfix, Sendmail)
  • CMS sin SDK (WordPress legacy, Drupal)
  • Sistemas sin capacidad HTTP nativa

Privilegia API si:

  • Nuevos desarrollos
  • Necesidad de respuestas inmediatas (MessageUUID)
  • Personalizacion avanzada (templates, variables)
  • Gestion detallada de errores

Configuracion DKIM: el punto critico

Por que DKIM es obligatorio

Desde los requisitos de Gmail/Yahoo de febrero 2024, la autenticacion DKIM es indispensable. Sin DKIM configurado, tus emails corren riesgo de ir a spam o ser rechazados.

Flujo de configuracion DKIM con Mailjet

Proceso de configuracion

  1. Account Settings → Domains & Sender addresses → SPF/DKIM Authentication
  2. Agregar el dominio si no esta listado
  3. Hacer clic en Setup SPF/DKIM Authentication
  4. Copiar los valores DKIM proporcionados
  5. Crear el registro TXT en tu DNS
  6. Hacer clic en Refresh para verificar

Parametros DKIM Mailjet

ParametroValor
Selectormailjet
Hostname DNSmailjet._domainkey.captaindns.com
TipoTXT (no CNAME)

Tamanos de claves disponibles

TamanoEstadoRecomendacion
1024 bitsLegacyCompatibilidad maxima
2048 bitsPor defecto desde abril 2024Recomendado
4096 bitsDisponible (cuentas nuevas)Seguridad maxima

Ejemplo de registro DKIM:

Type: TXT
Host: mailjet._domainkey
Value: k=rsa; p=MIGfMA0GCSqGSIb3DQEBA...[clave publica]...QIDAQAB
TTL: 300

Rotacion de claves: disponible via Account → Domains → Regenerate Key. Requiere actualizacion DNS despues de la regeneracion.

Alineamiento SPF, DKIM y DMARC

El problema del alineamiento SPF

Por defecto, Mailjet usa su propio dominio para el Return-Path (bnc3.mailjet.com). Consecuencia: el alineamiento SPF falla sistematicamente para DMARC.

Esquema alineamiento SPF y DKIM con DMARC

Como funciona DMARC con Mailjet

MetodoDominio autenticadoDominio FromAlineamiento?Resultado DMARC
SPFmailjet.com (Return-Path)captaindns.comNoNo contribuye
DKIMcaptaindns.com (firma d=)captaindns.comSiDMARC pasa

Estrategia: confiar en DKIM solo para la conformidad DMARC. Un solo mecanismo alineado es suficiente.

Activar el alineamiento SPF (opcional, cuentas de pago)

Si deseas el alineamiento SPF (doble validacion DMARC):

  1. Crear un CNAME: bnc3.captaindns.com CNAME bnc3.mailjet.com
  2. Enviar un ticket de soporte a Mailjet con captura de pantalla del DNS y API key
  3. Mailjet activa el Return-Path personalizado (limitado a uno por API key)

Nota: esta configuracion esta reservada a cuentas de pago y requiere intervencion del soporte.

Configuracion DMARC recomendada

# Fase 1 - Monitoreo
_dmarc TXT "v=DMARC1; p=none; rua=mailto:dmarc@captaindns.com"

# Fase 2 - Cuarentena
_dmarc TXT "v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc@captaindns.com"

# Fase 3 - Rechazo
_dmarc TXT "v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@captaindns.com"

IP dedicada vs compartida

Umbrales para IP dedicada

CriterioUmbral
Minimo absoluto100.000 emails/mes
Recomendacion ISP150.000 emails/mes + 5.000/dia
Incluida gratisPlanes Premium 100k+ y Custom

Proceso de warm-up

Una IP dedicada nueva requiere un warm-up obligatorio:

ParametroValor
TipoManual, guiado por el equipo de deliverability de Mailjet
Inicio~300 emails dia 1
Progresion+20% por dia
Duracion2-6 semanas segun volumen y engagement
ContactoSoporte/ventas obligatorio (sin autoservicio)

Cuando quedarse con IP compartida?

Quedarse con IP compartida si:

  • Volumen inferior a 100.000 emails/mes
  • Envios irregulares o esporadicos
  • Transaccional puro a bajo volumen
  • Sin recursos para gestionar el warm-up

Pasar a IP dedicada si:

  • Volumen regular superior a 150.000 emails/mes
  • Necesidad de separar trafico marketing y transaccional
  • Requisitos de whitelisting o cumplimiento normativo
  • Recursos para monitorear la reputacion

Precios 2025

Planes disponibles

PlanPrecio/mesEmails/mesEmails/diaIP dedicada
Free0$6.000200No
Essential 15k17$15.000IlimitadoNo
Premium 15k27$15.000IlimitadoNo
Premium 100k95$100.000IlimitadoIncluida
Premium 500k470$500.000IlimitadoIncluida
CustomCotizacionPersonalizadoIlimitadoIncluida

Descuento anual: 10% en todos los planes.

Funcionalidades por plan

FuncionalidadFreeEssentialPremium
APIs, SMTP, WebhooksSiSiSi
Logo MailjetPresenteEliminadoEliminado
SegmentacionNoSiSi
AutomatizacionNoNoSi
A/B TestingNoNoSi (10 versiones)
Multi-usuariosNoNoSi
IP dedicadaNoNoSi (100k+)
SSONoNoSi (100k+)

Costos adicionales

  • Overage: 2,24$/1000 (niveles bajos), 1,04$/1000 (niveles altos)
  • Email validations: 500/mes (Essential), 2.000/mes (Premium 100k+)
  • Descuento nonprofit: 20% en planes mensuales
  • Sin acumulacion de creditos: emails no usados expiran al final del ciclo

Limites tecnicos

Rate limits

ElementoLimite
Cuentas Test Mode10 emails/hora
Plan Free200 emails/dia
API SMS6 peticiones/segundo
IP dedicada~100.000 emails/hora
Mensajes v3 por llamada100
Mensajes v3.1 por llamada50

Throttling: codigo HTTP 429 Too Many Requests con error MJ-002: Exceeded API Rate Limit.

Cuotas de plataforma

ElementoLimite
Tamano email maximo15 MB
Recipients por llamada (v3)50
Objetos mensaje por payload (v3.1)100
Tamano HTML (antes del clipping Gmail)102 KB
Upload imagen2 MB (recomendado menos de 200 KB)
Contactos plan Free1.000

Gestion de bounces

TipoComportamiento Mailjet
Hard bounceBloqueo automatico 90 dias
Soft bounceReintento durante 24h luego marcado soft-bounced
Spam complaintBloqueo sistematico via FBL
UnsubscribeEliminacion automatica de las listas

Webhooks y Event API

Eventos disponibles

EventoDescripcion
sentEmail aceptado por servidor SMTP destino
deliveredEntrega confirmada
openApertura detectada
clickClic en enlace
bounceRebote (hard o soft)
blockedPre-bloqueado por Mailjet
spamMarcado como spam
unsubDesuscripcion

Configuracion webhook

POST /v3/REST/eventcallbackurl
{
  "EventType": "open",
  "Url": "https://captaindns.com/webhook",
  "Version": 2
}

Logica de reintento: intentos cada 30 segundos durante 24h si no hay respuesta 200. URL suspendida tras fallos repetidos.

Seguridad: HTTPS con Basic Auth recomendado (https://user:pass@captaindns.com/webhook).

Template Language

Mailjet utiliza una sintaxis tipo Jinja2/Twig:

Variables

Mailjet ofrece cuatro tipos de variables:

  • Variable API: sintaxis var:name para datos pasados via API
  • Valor por defecto: sintaxis var:name:"default" si la variable esta ausente
  • Dato contacto: sintaxis data:property para propiedades persistentes del contacto
  • Variable predefinida: sintaxis mj:contact.email para datos del sistema

Condicionales y bucles

Condicional:
{% if var:totalorders > "5" %}
Codigo promo VIP: -10%
{% else %}
Bienvenido nuevo cliente!
{% endif %}

Bucle:
{% for item in var:products %}
Producto: item.name - item.price EUR
{% endfor %}

Cumplimiento y certificaciones

CertificacionEstado
ISO 27001Si (primer ESP puro certificado, 2017)
ISO 27701Si (extension privacy)
SOC 2 Type IISi (~400 controles)
PCI DSSSi
HIPAABajo demanda
RGPDPrimera empresa certificada AFAQ RGPD (2018)

Datos: almacenamiento exclusivo en la UE (Google Cloud Platform).

Seguridad de cuenta:

  • Autenticacion de dos factores (2FA) via apps TOTP (Google Authenticator, Authy)
  • SSO y SAML en planes Premium 100k+ (Okta, Azure AD, Auth0)
  • Login Challenge para IPs desconocidas (desde marzo 2024)

Plan de accion: puesta en marcha en 7 pasos

1. Crear la cuenta y generar las credenciales

  • Crear una cuenta Mailjet (Free posible)
  • Generar API Key + Secret Key en Account Settings → API Key Management
  • Anotar las dos: API Key (publica) y Secret Key (privada, a proteger)

2. Agregar y validar el sender

  • Crear un sender en Account Settings → Senders & Domains
  • Validar la direccion via el enlace recibido por email

3. Configurar DKIM (obligatorio)

  • Ir a Domains & Sender addresses → SPF/DKIM Authentication
  • Copiar los valores DKIM generados por Mailjet
  • Crear el registro TXT en tu registrar:
    • Nombre: mailjet._domainkey
    • Valor: la clave publica proporcionada
  • Esperar la propagacion (24-48h max)
  • Hacer clic en Refresh para verificar

4. Configurar SPF (opcional)

Si deseas el include SPF:

v=spf1 include:spf.mailjet.com ~all

Nota: el include SPF solo no es suficiente para el alineamiento DMARC (ver seccion alineamiento).

5. Elegir el metodo de envio

Opcion A: API REST v3.1

  • Implementar el endpoint POST /v3.1/send
  • Usar los SDKs si estan disponibles en tu stack
  • Crear templates en Templates si es necesario

Opcion B: SMTP relay

  • Configurar tu app con:
    • Host: in-v3.mailjet.com
    • Puerto: 587 (STARTTLS)
    • User: API Key
    • Password: Secret Key

6. Configurar los webhooks

  • Account Settings → Event tracking (Webhooks)
  • Crear endpoints para: delivered, bounced, opened, clicked, spam
  • Asegurar con HTTPS + Basic Auth

7. Probar y monitorear

  • Enviar un email de prueba
  • Verificar en Stats que el envio esta OK
  • Verificar los headers del email recibido (DKIM pass, dominio From correcto)
  • Monitorear el dashboard para las metricas

FAQ

Cual es la diferencia entre API v3 y v3.1?

La v3.1 usa nombres de propiedades en CamelCase (HTMLPart) vs guiones (Html-part), limita los mensajes a 50 por llamada (vs 100), y devuelve respuestas mas detalladas con MessageUUID y MessageHref. La v3.1 es recomendada para nuevos proyectos.

Por que el alineamiento SPF falla con Mailjet?

Mailjet usa su propio dominio para el Return-Path (bnc3.mailjet.com). DMARC verifica el alineamiento entre el dominio autenticado por SPF y el dominio From. Como estos dominios difieren, SPF no contribuye a DMARC. Solucion: confiar en DKIM solo, que pasa en alineamiento.

Debo agregar include:spf.mailjet.com en mi SPF?

No es obligatorio y no cambia nada respecto al alineamiento DMARC. El include SPF puede ser util para la validacion SPF basica, pero DKIM solo es suficiente para pasar DMARC con Mailjet. El alineamiento SPF solo es posible con un Return-Path personalizado (cuentas de pago, soporte requerido).

El plan Free es suficiente para una app en produccion?

Si, si tu volumen es inferior o igual a 200 emails/dia (atencion: el plan Free ofrece 6.000/mes pero limitado a 200/dia). Todas las funcionalidades transaccionales (API, SMTP, webhooks) estan disponibles. Ideal para MVP, staging, o apps con muy bajo volumen.

Que tamano de clave DKIM elegir?

2048 bits es el valor por defecto desde abril 2024 y conviene para la mayoria de los casos. 4096 bits esta disponible para cuentas nuevas si deseas seguridad maxima. 1024 bits es legacy y desaconsejado salvo restriccion de compatibilidad especifica.

Cuando necesito una IP dedicada?

Si envias mas de 100.000 emails/mes de forma regular, si necesitas aislar la reputacion de tu trafico transaccional, o si tienes requisitos de whitelisting. La IP dedicada esta incluida en los planes Premium 100k+ y requiere un warm-up de 2-6 semanas.

Como funciona el warm-up de una IP dedicada?

El warm-up es un proceso manual guiado por el equipo de Mailjet. Comienza con aproximadamente 300 emails/dia y aumenta un 20% por dia durante 2 a 6 semanas. Hay que enviar diariamente para establecer la reputacion. Contacto soporte/ventas obligatorio para la activacion.

Puedo programar el envio de emails transaccionales a una hora especifica?

No, Mailjet no soporta el parametro send_at para emails transaccionales via Send API. La programacion solo esta disponible para campanas de marketing via el endpoint /campaigndraft. Para el transaccional, debes gestionar la programacion del lado de la aplicacion.

Glosario

  • SPF (Sender Policy Framework): Protocolo de autenticacion que lista los servidores autorizados a enviar emails para un dominio. SPF autentica el dominio del Return-Path. Con Mailjet, el include es spf.mailjet.com.

  • DKIM (DomainKeys Identified Mail): Protocolo de autenticacion que firma criptograficamente los emails. Mailjet usa el selector mailjet y ofrece claves de 1024 a 4096 bits.

  • DMARC (Domain-based Message Authentication, Reporting & Conformance): Protocolo que verifica el alineamiento entre SPF/DKIM y el header From. Con Mailjet, solo DKIM pasa en alineamiento por defecto.

  • Return-Path (Envelope From): Direccion tecnica usada para enrutar el email y gestionar los bounces. En Mailjet, es bnc3.mailjet.com por defecto, lo que impide el alineamiento SPF.

  • Alineamiento DMARC: Verificacion de que el dominio autenticado (SPF o DKIM) corresponde al dominio From. El modo relaxed (por defecto) acepta subdominios.

  • API Key: Identificador publico de Mailjet usado como username para la autenticacion API y SMTP.

  • Secret Key: Clave privada de Mailjet usada como password. A renovar cada 90 dias.

  • Send API: Endpoint de envio de emails de Mailjet. Version v3.1 recomendada (POST /v3.1/send).

  • Rate limit: Limite de tasa. Codigo HTTP 429 en caso de exceso. Mensaje v3.1 limitado a 50 por llamada.

  • Warm-up: Proceso de aumento progresivo de carga de una IP dedicada. 2-6 semanas en Mailjet.

  • Webhook: URL HTTP llamada por Mailjet durante eventos (delivered, bounced, etc.). Reintento durante 24h si falla.

Fuentes oficiales

Artículos relacionados