Mailjet: Guia tecnica completa para el email transaccional en 2026
Por CaptainDNS
Publicado el 20 de enero de 2026

- 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:
| Fecha | Evento |
|---|---|
| Febrero 2011 | Lanzamiento publico |
| Octubre 2019 | Adquisicion por Mailgun (Thoma Bravo) |
| Diciembre 2021 | Adquisicion por Sinch por 1,9 Md$ |
| 2025 | 300+ mil millones de emails/ano |
Posicionamiento vs Mailgun
Dentro del ecosistema Sinch, la diferenciacion es clara:
| Plataforma | Objetivo | Punto fuerte |
|---|---|---|
| Sinch Mailjet | Marketeros, PYMES | Interfaz intuitiva, editor colaborativo |
| Sinch Mailgun | Desarrolladores | API-first, 20+ APIs, SDKs avanzados |
| Sinch Email on Acid | QA email | Test 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.

Diferencias clave
| Caracteristica | v3 | v3.1 (recomendada) |
|---|---|---|
| Endpoint | POST /v3/send | POST /v3.1/send |
| Estructura payload | Recipients array | Messages array obligatorio |
| Nombrado propiedades | Guiones (Html-part) | CamelCase (HTMLPart) |
| Mensajes por llamada | 100 | 50 |
| Variables | Vars | Variables |
| Templates | Mj-TemplateID | TemplateID |
| Respuesta | Estado simple | Detallada 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
| Lenguaje | Paquete | Instalacion |
|---|---|---|
| PHP | mailjet-apiv3-php | composer require mailjet/mailjet-apiv3-php |
| Node.js | node-mailjet | npm install node-mailjet |
| Python | mailjet-rest | pip install mailjet-rest |
| Go | mailjet-apiv3-go | go get github.com/mailjet/mailjet-apiv3-go/v4 |
| Java | mailjet-client | Maven com.mailjet:mailjet-client:6.0.0 |
| Ruby | mailjet-gem | gem install mailjet |
| C#/.NET | Mailjet.Api | NuGet 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
| Header | Uso |
|---|---|
X-MJ-CustomID | Identificador personalizado para tracking |
X-MJ-EventPayload | Payload devuelto en webhooks |
X-MJ-Campaign | Agrupacion de mensajes |
X-MJ-TemplateID | ID del template Mailjet |
X-MJ-TemplateLanguage | Activa el motor de templates (true) |
X-MJ-Vars | Variables JSON para personalizacion |
X-MJ-TrackOpen / X-MJ-TrackClick | Override 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.

Proceso de configuracion
- Account Settings → Domains & Sender addresses → SPF/DKIM Authentication
- Agregar el dominio si no esta listado
- Hacer clic en Setup SPF/DKIM Authentication
- Copiar los valores DKIM proporcionados
- Crear el registro TXT en tu DNS
- Hacer clic en Refresh para verificar
Parametros DKIM Mailjet
| Parametro | Valor |
|---|---|
| Selector | mailjet |
| Hostname DNS | mailjet._domainkey.captaindns.com |
| Tipo | TXT (no CNAME) |
Tamanos de claves disponibles
| Tamano | Estado | Recomendacion |
|---|---|---|
| 1024 bits | Legacy | Compatibilidad maxima |
| 2048 bits | Por defecto desde abril 2024 | Recomendado |
| 4096 bits | Disponible (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.

Como funciona DMARC con Mailjet
| Metodo | Dominio autenticado | Dominio From | Alineamiento? | Resultado DMARC |
|---|---|---|---|---|
| SPF | mailjet.com (Return-Path) | captaindns.com | No | No contribuye |
| DKIM | captaindns.com (firma d=) | captaindns.com | Si | DMARC 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):
- Crear un CNAME:
bnc3.captaindns.com CNAME bnc3.mailjet.com - Enviar un ticket de soporte a Mailjet con captura de pantalla del DNS y API key
- 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
| Criterio | Umbral |
|---|---|
| Minimo absoluto | 100.000 emails/mes |
| Recomendacion ISP | 150.000 emails/mes + 5.000/dia |
| Incluida gratis | Planes Premium 100k+ y Custom |
Proceso de warm-up
Una IP dedicada nueva requiere un warm-up obligatorio:
| Parametro | Valor |
|---|---|
| Tipo | Manual, guiado por el equipo de deliverability de Mailjet |
| Inicio | ~300 emails dia 1 |
| Progresion | +20% por dia |
| Duracion | 2-6 semanas segun volumen y engagement |
| Contacto | Soporte/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
| Plan | Precio/mes | Emails/mes | Emails/dia | IP dedicada |
|---|---|---|---|---|
| Free | 0$ | 6.000 | 200 | No |
| Essential 15k | 17$ | 15.000 | Ilimitado | No |
| Premium 15k | 27$ | 15.000 | Ilimitado | No |
| Premium 100k | 95$ | 100.000 | Ilimitado | Incluida |
| Premium 500k | 470$ | 500.000 | Ilimitado | Incluida |
| Custom | Cotizacion | Personalizado | Ilimitado | Incluida |
Descuento anual: 10% en todos los planes.
Funcionalidades por plan
| Funcionalidad | Free | Essential | Premium |
|---|---|---|---|
| APIs, SMTP, Webhooks | Si | Si | Si |
| Logo Mailjet | Presente | Eliminado | Eliminado |
| Segmentacion | No | Si | Si |
| Automatizacion | No | No | Si |
| A/B Testing | No | No | Si (10 versiones) |
| Multi-usuarios | No | No | Si |
| IP dedicada | No | No | Si (100k+) |
| SSO | No | No | Si (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
| Elemento | Limite |
|---|---|
| Cuentas Test Mode | 10 emails/hora |
| Plan Free | 200 emails/dia |
| API SMS | 6 peticiones/segundo |
| IP dedicada | ~100.000 emails/hora |
| Mensajes v3 por llamada | 100 |
| Mensajes v3.1 por llamada | 50 |
Throttling: codigo HTTP 429 Too Many Requests con error MJ-002: Exceeded API Rate Limit.
Cuotas de plataforma
| Elemento | Limite |
|---|---|
| Tamano email maximo | 15 MB |
| Recipients por llamada (v3) | 50 |
| Objetos mensaje por payload (v3.1) | 100 |
| Tamano HTML (antes del clipping Gmail) | 102 KB |
| Upload imagen | 2 MB (recomendado menos de 200 KB) |
| Contactos plan Free | 1.000 |
Gestion de bounces
| Tipo | Comportamiento Mailjet |
|---|---|
| Hard bounce | Bloqueo automatico 90 dias |
| Soft bounce | Reintento durante 24h luego marcado soft-bounced |
| Spam complaint | Bloqueo sistematico via FBL |
| Unsubscribe | Eliminacion automatica de las listas |
Webhooks y Event API
Eventos disponibles
| Evento | Descripcion |
|---|---|
sent | Email aceptado por servidor SMTP destino |
delivered | Entrega confirmada |
open | Apertura detectada |
click | Clic en enlace |
bounce | Rebote (hard o soft) |
blocked | Pre-bloqueado por Mailjet |
spam | Marcado como spam |
unsub | Desuscripcion |
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:namepara datos pasados via API - Valor por defecto: sintaxis
var:name:"default"si la variable esta ausente - Dato contacto: sintaxis
data:propertypara propiedades persistentes del contacto - Variable predefinida: sintaxis
mj:contact.emailpara 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
| Certificacion | Estado |
|---|---|
| ISO 27001 | Si (primer ESP puro certificado, 2017) |
| ISO 27701 | Si (extension privacy) |
| SOC 2 Type II | Si (~400 controles) |
| PCI DSS | Si |
| HIPAA | Bajo demanda |
| RGPD | Primera 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
- Nombre:
- 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
- Host:
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
mailjety 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.compor 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.


