Ir al contenido principal

Mailjet: Guía técnica completa para el email transaccional en 2026

Por CaptainDNS
Publicado el 20 de enero de 2026

Dashboard Mailjet con configuración API transaccional y autenticación de email
TL;DR
  • Mailjet (Sinch) procesa 300+ mil millones de emails/año 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/día, ideal para dev/staging.

Introducción

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 dólares. Hoy en día, la plataforma procesa más de 300 mil millones de emails por año y sirve a más de 100.000 clientes de pago en más de 150 países.

Pero detrás de la interfaz de marketing y el editor drag-and-drop se esconden sutilezas técnicas críticas: diferencias entre API v3 y v3.1, configuración DKIM con elección de tamaño de clave, alineamiento DMARC fallando por defecto en SPF, límites estrictos del plan Free (solo 200 emails/día), y restricciones de IP dedicada con warm-up obligatorio.

Esta guía está dirigida a desarrolladores, DevOps y administradores de sistemas que integran Mailjet para el email transaccional. Detallamos los puntos bloqueantes, las configuraciones críticas, y las decisiones técnicas según tu stack y tus volúmenes.

Mailjet en el ecosistema Sinch

Histórico y adquisiciones

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

FechaEvento
Febrero 2011Lanzamiento público
Octubre 2019Adquisición por Mailgun (Thoma Bravo)
Diciembre 2021Adquisición por Sinch por 1,9 Md$
2025300+ mil millones de emails/año

Posicionamiento vs Mailgun

Dentro del ecosistema Sinch, la diferenciación es clara:

PlataformaObjetivoPunto fuerte
Sinch MailjetMarketeros, PYMESInterfaz intuitiva, editor colaborativo
Sinch MailgunDesarrolladoresAPI-first, 20+ APIs, SDKs avanzados
Sinch Email on AcidQA emailTest y previsualización 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.

Comparación API v3 y v3.1 Mailjet

Diferencias clave

Característicav3v3.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 petición v3.1

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

Autenticación API

La autenticación utiliza Basic Auth con:

  • Username: API Key (pública)
  • 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": [...]}'

Recomendación: renovar la Secret Key cada 90 días.

SDKs oficiales

LenguajePaqueteInstalación
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

Limitación importante: Mailjet no soporta el parámetro send_at para emails transaccionales. La programación de envíos solo está disponible para campañas de marketing via /campaigndraft.

SMTP Relay

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

Configuración

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-CampaignAgrupación de mensajes
X-MJ-TemplateIDID del template Mailjet
X-MJ-TemplateLanguageActiva el motor de templates (true)
X-MJ-VarsVariables JSON para personalización
X-MJ-TrackOpen / X-MJ-TrackClickOverride tracking (0/1)

SMTP vs API: cuándo elegir qué?

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)
  • Personalización avanzada (templates, variables)
  • Gestión detallada de errores

Configuración DKIM: el punto crítico

Por qué DKIM es obligatorio

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

Flujo de configuración DKIM con Mailjet

Proceso de configuración

  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

Parámetros DKIM Mailjet

ParámetroValor
Selectormailjet
Hostname DNSmailjet._domainkey.captaindns.com
TipoTXT (no CNAME)

Tamaños de claves disponibles

TamañoEstadoRecomendación
1024 bitsLegacyCompatibilidad máxima
2048 bitsPor defecto desde abril 2024Recomendado
4096 bitsDisponible (cuentas nuevas)Seguridad máxima

Ejemplo de registro DKIM:

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

Rotación de claves: disponible via Account → Domains → Regenerate Key. Requiere actualización DNS después de la regeneración.

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

Cómo funciona DMARC con Mailjet

MétodoDominio autenticadoDominio FromAlineamiento?Resultado DMARC
SPFmailjet.com (Return-Path)captaindns.comNoNo contribuye
DKIMcaptaindns.com (firma d=)captaindns.comDMARC 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 validación 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 configuración está reservada a cuentas de pago y requiere intervención del soporte.

Configuración 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
Mínimo absoluto100.000 emails/mes
Recomendación ISP150.000 emails/mes + 5.000/día
Incluida gratisPlanes Premium 100k+ y Custom

Proceso de warm-up

Una IP dedicada nueva requiere un warm-up obligatorio:

ParámetroValor
TipoManual, guiado por el equipo de deliverability de Mailjet
Inicio~300 emails día 1
Progresión+20% por día
Duración2-6 semanas según volumen y engagement
ContactoSoporte/ventas obligatorio (sin autoservicio)

Cuándo quedarse con IP compartida?

Quedarse con IP compartida si:

  • Volumen inferior a 100.000 emails/mes
  • Envíos irregulares o esporádicos
  • 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 tráfico marketing y transaccional
  • Requisitos de whitelisting o cumplimiento normativo
  • Recursos para monitorear la reputación

Precios 2025

Planes disponibles

PlanPrecio/mesEmails/mesEmails/díaIP dedicada
Free0$6.000200No
Essential 15k17$15.000IlimitadoNo
Premium 15k27$15.000IlimitadoNo
Premium 100k95$100.000IlimitadoIncluida
Premium 500k470$500.000IlimitadoIncluida
CustomCotizaciónPersonalizadoIlimitadoIncluida

Descuento anual: 10% en todos los planes.

Funcionalidades por plan

FuncionalidadFreeEssentialPremium
APIs, SMTP, Webhooks
Logo MailjetPresenteEliminadoEliminado
SegmentaciónNo
AutomatizaciónNoNo
A/B TestingNoNoSí (10 versiones)
Multi-usuariosNoNo
IP dedicadaNoNoSí (100k+)
SSONoNoSí (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 acumulación de créditos: emails no usados expiran al final del ciclo

Límites técnicos

Rate limits

ElementoLímite
Cuentas Test Mode10 emails/hora
Plan Free200 emails/día
API SMS6 peticiones/segundo
IP dedicada~100.000 emails/hora
Mensajes v3 por llamada100
Mensajes v3.1 por llamada50

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

Cuotas de plataforma

ElementoLímite
Tamaño email máximo15 MB
Recipients por llamada (v3)50
Objetos mensaje por payload (v3.1)100
Tamaño HTML (antes del clipping Gmail)102 KB
Upload imagen2 MB (recomendado < 200 KB)
Contactos plan Free1.000

Gestión de bounces

TipoComportamiento Mailjet
Hard bounceBloqueo automático 90 días
Soft bounceReintento durante 24h luego marcado soft-bounced
Spam complaintBloqueo sistemático via FBL
UnsubscribeEliminación automática de las listas

Webhooks y Event API

Eventos disponibles

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

Configuración webhook

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

Lógica 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 está 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" %}
Código promo VIP: -10%
{% else %}
Bienvenido nuevo cliente!
{% endif %}

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

Cumplimiento y certificaciones

CertificaciónEstado
ISO 27001Sí (primer ESP puro certificado, 2017)
ISO 27701Sí (extensión privacy)
SOC 2 Type IISí (~400 controles)
PCI DSS
HIPAABajo demanda
RGPDPrimera empresa certificada AFAQ RGPD (2018)

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

Seguridad de cuenta:

  • Autenticación 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 acción: 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 (pública) y Secret Key (privada, a proteger)

2. Agregar y validar el sender

  • Crear un sender en Account Settings → Senders & Domains
  • Validar la dirección 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 pública proporcionada
  • Esperar la propagación (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 sección alineamiento).

5. Elegir el método de envío

Opción A: API REST v3.1

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

Opción 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 envío está OK
  • Verificar los headers del email recibido (DKIM pass, dominio From correcto)
  • Monitorear el dashboard para las metricas

Guias tecnicas: otras plataformas de email transaccional

Descubre nuestras guias completas para otras soluciones de email transaccional:

FAQ

Cuál 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 más detalladas con MessageUUID y MessageHref. La v3.1 es recomendada para nuevos proyectos.

Por qué 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. Solución: 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 útil para la validación SPF básica, 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 producción?

Sí, si tu volumen es inferior o igual a 200 emails/día (atención: el plan Free ofrece 6.000/mes pero limitado a 200/día). Todas las funcionalidades transaccionales (API, SMTP, webhooks) están disponibles. Ideal para MVP, staging, o apps con muy bajo volumen.

Qué tamaño de clave DKIM elegir?

2048 bits es el valor por defecto desde abril 2024 y conviene para la mayoría de los casos. 4096 bits está disponible para cuentas nuevas si deseas seguridad máxima. 1024 bits es legacy y desaconsejado salvo restricción de compatibilidad específica.

Cuándo necesito una IP dedicada?

Si envías más de 100.000 emails/mes de forma regular, si necesitas aislar la reputación de tu tráfico transaccional, o si tienes requisitos de whitelisting. La IP dedicada está incluida en los planes Premium 100k+ y requiere un warm-up de 2-6 semanas.

Cómo 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/día y aumenta un 20% por día durante 2 a 6 semanas. Hay que enviar diariamente para establecer la reputación. Contacto soporte/ventas obligatorio para la activación.

Puedo programar el envío de emails transaccionales a una hora específica?

No, Mailjet no soporta el parámetro send_at para emails transaccionales via Send API. La programación solo está disponible para campañas de marketing via el endpoint /campaigndraft. Para el transaccional, debes gestionar la programación del lado de la aplicación.

Glosario

  • SPF (Sender Policy Framework): Protocolo de autenticación 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 autenticación que firma criptográficamente 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): Dirección técnica 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: Verificación de que el dominio autenticado (SPF o DKIM) corresponde al dominio From. El modo relaxed (por defecto) acepta subdominios.

  • API Key: Identificador público de Mailjet usado como username para la autenticación API y SMTP.

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

  • Send API: Endpoint de envío de emails de Mailjet. Versión v3.1 recomendada (POST /v3.1/send).

  • Rate limit: Límite de tasa. Código 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