Mailjet : Guide technique complet pour l'email transactionnel en 2026
Par CaptainDNS
Publié le 20 janvier 2026

- Mailjet (Sinch) traite 300+ milliards d'emails/an avec une API v3.1 moderne limitée à 50 messages par appel.
- DKIM obligatoire : sélecteur
mailjet, clés 2048 bits par défaut depuis avril 2024, 4096 bits disponible. - L'alignement SPF échoue par défaut (Return-Path sur domaine Mailjet) : comptez sur DKIM seul pour DMARC.
- IP dédiée incluse à partir du plan Premium 100k (95$/mois) avec warm-up de 2-6 semaines obligatoire.
- Plan Free : 6 000 emails/mois mais limité à 200/jour, idéal pour dev/staging.
Introduction
Mailjet s'est imposé comme un acteur majeur de l'email transactionnel en Europe, fondé en 2010 à Nantes avant d'être acquis par Sinch en décembre 2021 pour 1,9 milliard de dollars. Aujourd'hui, la plateforme traite plus de 300 milliards d'emails par an et équipe plus de 100 000 clients payants dans 150+ pays.
Mais derrière l'interface marketing et l'éditeur drag-and-drop se cachent des subtilités techniques critiques : différences entre API v3 et v3.1, configuration DKIM avec choix de taille de clé, alignement DMARC échouant par défaut en SPF, limites strictes du plan Free (200 emails/jour seulement), et contraintes d'IP dédiée avec warm-up obligatoire.
Ce guide s'adresse aux développeurs, DevOps, et admins système qui intègrent Mailjet pour l'email transactionnel. Nous détaillons les points bloquants, les configurations critiques, et les choix techniques selon votre stack et vos volumes.
Mailjet dans l'écosystème Sinch
Historique et acquisitions
Mailjet a été fondé en 2010 à Nantes par Wilfried Durand et Julien Tartarin via eFounders (aujourd'hui Hexa). La trajectoire d'acquisitions :
| Date | Événement |
|---|---|
| Février 2011 | Lancement public |
| Octobre 2019 | Acquisition par Mailgun (Thoma Bravo) |
| Décembre 2021 | Acquisition par Sinch pour 1,9 Md$ |
| 2025 | 300+ milliards d'emails/an |
Positionnement vs Mailgun
Au sein de l'écosystème Sinch, la différenciation est claire :
| Plateforme | Cible | Point fort |
|---|---|---|
| Sinch Mailjet | Marketeurs, PME | Interface intuitive, éditeur collaboratif |
| Sinch Mailgun | Développeurs | API-first, 20+ APIs, SDKs avancés |
| Sinch Email on Acid | QA email | Test et prévisualisation cross-client |
Chiffre clé : durant le Black Friday 2025, Mailjet et Mailgun ont délivré 20,4 milliards d'emails en novembre (+32% YoY).
API REST : v3 vs v3.1
Mailjet propose deux versions de son Send API. La v3.1 est recommandée pour les nouveaux projets.

Différences clés
| Caractéristique | v3 | v3.1 (recommandée) |
|---|---|---|
| Endpoint | POST /v3/send | POST /v3.1/send |
| Structure payload | Recipients array | Messages array obligatoire |
| Nommage propriétés | Tirets (Html-part) | CamelCase (HTMLPart) |
| Messages par appel | 100 | 50 |
| Variables | Vars | Variables |
| Templates | Mj-TemplateID | TemplateID |
| Réponse | Statut simple | Détaillée avec MessageUUID, MessageHref |
Structure de requête v3.1
{
"Messages": [{
"From": {"Email": "sender@captaindns.com", "Name": "Expéditeur"},
"To": [{"Email": "dest@captaindns.com", "Name": "Destinataire"}],
"Subject": "Confirmation commande {{var:order_id}}",
"HTMLPart": "<h1>Merci {{var:firstname}}</h1>",
"Variables": {"firstname": "Jean", "order_id": "12345"},
"TemplateID": 12345,
"TemplateLanguage": true
}]
}
Authentification API
L'authentification utilise Basic Auth avec :
- Username : API Key (publique)
- Password : Secret Key (privée)
curl -X POST https://api.mailjet.com/v3.1/send \
-u "$API_KEY:$SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"Messages": [...]}'
Recommandation : renouveler la Secret Key tous les 90 jours.
SDKs officiels
| Langage | Package | Installation |
|---|---|---|
| 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 |
Limitation importante : Mailjet ne supporte pas le paramètre send_at pour les emails transactionnels. Le scheduling n'est disponible que pour les campagnes marketing via /campaigndraft.
SMTP Relay
Le SMTP relay reste pertinent pour les infrastructures existantes et les CMS legacy.
Configuration
Serveur SMTP: in-v3.mailjet.com
Ports: 25 (STARTTLS), 465 (SSL/TLS), 587 (recommandé), 2525 (alternatif)
Username: [API Key]
Password: [Secret Key]
Chiffrement: TLS supporté sur tous les ports
Headers X-Mailjet-* pour fonctionnalités avancées
| Header | Usage |
|---|---|
X-MJ-CustomID | Identifiant personnalisé pour tracking |
X-MJ-EventPayload | Payload retourné dans webhooks |
X-MJ-Campaign | Groupement de messages |
X-MJ-TemplateID | ID du template Mailjet |
X-MJ-TemplateLanguage | Active le moteur de templates (true) |
X-MJ-Vars | Variables JSON pour personnalisation |
X-MJ-TrackOpen / X-MJ-TrackClick | Override tracking (0/1) |
SMTP vs API : quand choisir quoi ?
Privilégiez SMTP si :
- Infrastructure existante (Postfix, Sendmail)
- CMS sans SDK (WordPress legacy, Drupal)
- Systèmes sans capacité HTTP native
Privilégiez API si :
- Nouveaux développements
- Besoin de réponses immédiates (MessageUUID)
- Personnalisation avancée (templates, variables)
- Gestion fine des erreurs
Configuration DKIM : le point critique
Pourquoi DKIM est obligatoire
Depuis les exigences Gmail/Yahoo de février 2024, l'authentification DKIM est indispensable. Sans DKIM configuré, vos emails risquent le spam ou le rejet.

Processus de configuration
- Account Settings → Domains & Sender addresses → SPF/DKIM Authentication
- Ajouter le domaine si non listé
- Cliquer sur Setup SPF/DKIM Authentication
- Copier les valeurs DKIM fournies
- Créer l'enregistrement TXT dans votre DNS
- Cliquer sur Refresh pour vérifier
Paramètres DKIM Mailjet
| Paramètre | Valeur |
|---|---|
| Sélecteur | mailjet |
| Hostname DNS | mailjet._domainkey.captaindns.com |
| Type | TXT (pas CNAME) |
Tailles de clés disponibles
| Taille | Statut | Recommandation |
|---|---|---|
| 1024 bits | Legacy | Compatibilité maximale |
| 2048 bits | Par défaut depuis avril 2024 | Recommandé |
| 4096 bits | Disponible (nouveaux comptes) | Sécurité maximale |
Exemple d'enregistrement DKIM :
Type: TXT
Host: mailjet._domainkey
Value: k=rsa; p=MIGfMA0GCSqGSIb3DQEBA...[clé publique]...QIDAQAB
TTL: 300
Rotation des clés : disponible via Account → Domains → Regenerate Key. Nécessite mise à jour DNS après régénération.
Alignement SPF, DKIM et DMARC
Le problème de l'alignement SPF
Par défaut, Mailjet utilise son propre domaine pour le Return-Path (bnc3.mailjet.com). Conséquence : l'alignement SPF échoue systématiquement pour DMARC.

Comment DMARC fonctionne avec Mailjet
| Méthode | Domaine authentifié | Domaine From | Alignment ? | Résultat DMARC |
|---|---|---|---|---|
| SPF | mailjet.com (Return-Path) | captaindns.com | Non | Ne contribue pas |
| DKIM | captaindns.com (signature d=) | captaindns.com | Oui | DMARC passe |
Stratégie : s'appuyer sur DKIM seul pour la conformité DMARC. Un seul mécanisme aligné suffit.
Activer l'alignement SPF (optionnel, comptes payants)
Si vous souhaitez l'alignement SPF (double validation DMARC) :
- Créer un CNAME :
bnc3.captaindns.com CNAME bnc3.mailjet.com - Soumettre un ticket support Mailjet avec screenshot DNS et API key
- Mailjet active le Return-Path personnalisé (limité à un par API key)
Note : cette configuration est réservée aux comptes payants et nécessite une intervention du support.
Configuration DMARC recommandée
# Phase 1 - Monitoring
_dmarc TXT "v=DMARC1; p=none; rua=mailto:dmarc@captaindns.com"
# Phase 2 - Quarantine
_dmarc TXT "v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc@captaindns.com"
# Phase 3 - Reject
_dmarc TXT "v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@captaindns.com"
IP dédiée vs partagée
Seuils pour IP dédiée
| Critère | Seuil |
|---|---|
| Minimum absolu | 100 000 emails/mois |
| Recommandation ISP | 150 000 emails/mois + 5 000/jour |
| Incluse gratuitement | Plans Premium 100k+ et Custom |
Processus de warm-up
Une IP dédiée neuve nécessite un warm-up obligatoire :
| Paramètre | Valeur |
|---|---|
| Type | Manuel, guidé par l'équipe délivrabilité Mailjet |
| Démarrage | ~300 emails jour 1 |
| Progression | +20% par jour |
| Durée | 2-6 semaines selon volume et engagement |
| Contact | Support/sales obligatoire (pas de self-service) |
Quand rester sur IP partagée ?
Restez sur IP partagée si :
- Volume inférieur à 100 000 emails/mois
- Envois irréguliers ou sporadiques
- Transactionnel pur à faible volume
- Pas de ressources pour gérer le warm-up
Passez à IP dédiée si :
- Volume régulier supérieur à 150 000 emails/mois
- Besoin de séparer trafic marketing et transactionnel
- Exigences de whitelisting ou conformité
- Ressources pour surveiller la réputation
Tarification 2025
Plans disponibles
| Plan | Prix/mois | Emails/mois | Emails/jour | IP dédiée |
|---|---|---|---|---|
| Free | 0$ | 6 000 | 200 | Non |
| Essential 15k | 17$ | 15 000 | Illimité | Non |
| Premium 15k | 27$ | 15 000 | Illimité | Non |
| Premium 100k | 95$ | 100 000 | Illimité | Incluse |
| Premium 500k | 470$ | 500 000 | Illimité | Incluse |
| Custom | Devis | Personnalisé | Illimité | Incluse |
Réduction annuelle : 10% sur tous les plans.
Fonctionnalités par plan
| Fonctionnalité | Free | Essential | Premium |
|---|---|---|---|
| APIs, SMTP, Webhooks | Oui | Oui | Oui |
| Logo Mailjet | Présent | Retiré | Retiré |
| Segmentation | Non | Oui | Oui |
| Automation | Non | Non | Oui |
| A/B Testing | Non | Non | Oui (10 versions) |
| Multi-utilisateurs | Non | Non | Oui |
| IP dédiée | Non | Non | Oui (100k+) |
| SSO | Non | Non | Oui (100k+) |
Coûts additionnels
- Overage : 2,24$/1000 (tiers bas), 1,04$/1000 (tiers hauts)
- Email validations : 500/mois (Essential), 2 000/mois (Premium 100k+)
- Réduction nonprofit : 20% sur plans mensuels
- Pas de report de crédits : emails non utilisés expirent en fin de cycle
Limites techniques
Rate limits
| Élément | Limite |
|---|---|
| Comptes Test Mode | 10 emails/heure |
| Free plan | 200 emails/jour |
| API SMS | 6 requêtes/seconde |
| IP dédiée | ~100 000 emails/heure |
| Messages v3 par appel | 100 |
| Messages v3.1 par appel | 50 |
Throttling : code HTTP 429 Too Many Requests avec erreur MJ-002: Exceeded API Rate Limit.
Quotas plateforme
| Élément | Limite |
|---|---|
| Taille email maximum | 15 MB |
| Recipients par appel (v3) | 50 |
| Objets message par payload (v3.1) | 100 |
| Taille HTML (avant clipping Gmail) | 102 KB |
| Upload image | 2 MB (recommandé moins de 200 KB) |
| Contacts plan Free | 1 000 |
Gestion des bounces
| Type | Comportement Mailjet |
|---|---|
| Hard bounce | Blocage automatique 90 jours |
| Soft bounce | Retry pendant 24h puis marqué soft-bounced |
| Spam complaint | Blocage systématique via FBL |
| Unsubscribe | Retrait automatique des listes |
Webhooks et Event API
Événements disponibles
| Événement | Description |
|---|---|
sent | Email accepté par serveur SMTP destination |
delivered | Délivrance confirmée |
open | Ouverture détectée |
click | Clic sur lien |
bounce | Rebond (hard ou soft) |
blocked | Pré-bloqué par Mailjet |
spam | Marqué comme spam |
unsub | Désinscription |
Configuration webhook
POST /v3/REST/eventcallbackurl
{
"EventType": "open",
"Url": "https://captaindns.com/webhook",
"Version": 2
}
Retry logic : tentatives toutes les 30 secondes pendant 24h si non-200. URL suspendue après échecs répétés.
Sécurité : HTTPS avec Basic Auth recommandé (https://user:pass@captaindns.com/webhook).
Template Language
Mailjet utilise une syntaxe type Jinja2/Twig :
Variables
Mailjet propose quatre types de variables :
- Variable API : syntaxe
var:namepour les données passées via l'API - Valeur par défaut : syntaxe
var:name:"default"si la variable est absente - Donnée contact : syntaxe
data:propertypour les propriétés persistantes du contact - Variable prédéfinie : syntaxe
mj:contact.emailpour les données système
Conditionnels et boucles
Conditionnel :
{% if var:totalorders > "5" %}
Code promo VIP : -10%
{% else %}
Bienvenue nouveau client !
{% endif %}
Boucle :
{% for item in var:products %}
Produit: item.name - item.price EUR
{% endfor %}
Conformité et certifications
| Certification | Statut |
|---|---|
| ISO 27001 | Oui (premier ESP pur certifié, 2017) |
| ISO 27701 | Oui (extension privacy) |
| SOC 2 Type II | Oui (~400 contrôles) |
| PCI DSS | Oui |
| HIPAA | Sur demande |
| RGPD | Première entreprise certifiée AFAQ RGPD (2018) |
Données : stockage exclusif dans l'UE (Google Cloud Platform).
Sécurité compte :
- Authentification à deux facteurs (2FA) via apps TOTP (Google Authenticator, Authy)
- SSO et SAML sur plans Premium 100k+ (Okta, Azure AD, Auth0)
- Login Challenge pour IPs inconnues (depuis mars 2024)
Plan d'action : mise en route en 7 étapes
1. Créer le compte et générer les credentials
- Créer un compte Mailjet (Free possible)
- Générer API Key + Secret Key dans Account Settings → API Key Management
- Noter les deux : API Key (publique) et Secret Key (privée, à protéger)
2. Ajouter et valider le sender
- Créer un sender dans Account Settings → Senders & Domains
- Valider l'adresse via le lien reçu par email
3. Configurer DKIM (obligatoire)
- Aller dans Domains & Sender addresses → SPF/DKIM Authentication
- Copier les valeurs DKIM générées par Mailjet
- Créer l'enregistrement TXT chez votre registrar :
- Nom :
mailjet._domainkey - Valeur : la clé publique fournie
- Nom :
- Attendre la propagation (24-48h max)
- Cliquer sur Refresh pour vérifier
4. Configurer SPF (optionnel)
Si vous souhaitez l'include SPF :
v=spf1 include:spf.mailjet.com ~all
Note : l'include SPF seul ne suffit pas pour l'alignement DMARC (voir section alignement).
5. Choisir la méthode d'envoi
Option A : API REST v3.1
- Implémenter l'endpoint
POST /v3.1/send - Utiliser les SDKs si disponibles dans votre stack
- Créer des templates dans Templates si besoin
Option B : SMTP relay
- Configurer votre app avec :
- Host :
in-v3.mailjet.com - Port :
587(STARTTLS) - User : API Key
- Password : Secret Key
- Host :
6. Configurer les webhooks
- Account Settings → Event tracking (Webhooks)
- Créer des endpoints pour :
delivered,bounced,opened,clicked,spam - Sécuriser avec HTTPS + Basic Auth
7. Tester et monitorer
- Envoyer un email test
- Vérifier dans Stats que l'envoi est OK
- Vérifier les headers de l'email reçu (DKIM pass, domaine From correct)
- Surveiller le dashboard pour les métriques
FAQ
Quelle est la différence entre API v3 et v3.1 ?
La v3.1 utilise des noms de propriétés en CamelCase (HTMLPart) vs tirets (Html-part), limite les messages à 50 par appel (vs 100), et retourne des réponses plus détaillées avec MessageUUID et MessageHref. La v3.1 est recommandée pour les nouveaux projets.
Pourquoi l'alignement SPF échoue avec Mailjet ?
Mailjet utilise son propre domaine pour le Return-Path (bnc3.mailjet.com). DMARC vérifie l'alignement entre le domaine authentifié par SPF et le domaine From. Comme ces domaines diffèrent, SPF ne contribue pas à DMARC. Solution : s'appuyer sur DKIM seul, qui passe en alignement.
Dois-je ajouter include:spf.mailjet.com dans mon SPF ?
Ce n'est pas obligatoire et ça ne change rien à l'alignement DMARC. L'include SPF peut être utile pour la validation SPF basique, mais DKIM seul suffit pour passer DMARC avec Mailjet. L'alignement SPF n'est possible qu'avec un Return-Path personnalisé (comptes payants, support requis).
Le plan Free suffit-il pour une app en production ?
Oui, si votre volume est inférieur ou égal à 200 emails/jour (attention : le plan Free offre 6 000/mois mais limité à 200/jour). Toutes les fonctionnalités transactionnelles (API, SMTP, webhooks) sont disponibles. Idéal pour MVP, staging, ou apps à très faible volume.
Quelle taille de clé DKIM choisir ?
2048 bits est le défaut depuis avril 2024 et convient à la majorité des cas. 4096 bits est disponible pour les nouveaux comptes si vous souhaitez une sécurité maximale. 1024 bits est legacy et déconseillé sauf contrainte de compatibilité spécifique.
Quand ai-je besoin d'une IP dédiée ?
Si vous envoyez plus de 100 000 emails/mois de façon régulière, si vous avez besoin d'isoler la réputation de votre trafic transactionnel, ou si vous avez des exigences de whitelisting. L'IP dédiée est incluse dans les plans Premium 100k+ et nécessite un warm-up de 2-6 semaines.
Comment fonctionne le warm-up d'une IP dédiée ?
Le warm-up est un processus manuel guidé par l'équipe Mailjet. Il démarre à environ 300 emails/jour et augmente de 20% par jour pendant 2 à 6 semaines. Il faut envoyer quotidiennement pour établir la réputation. Contact support/sales obligatoire pour l'activation.
Puis-je programmer l'envoi d'emails transactionnels à une heure précise ?
Non, Mailjet ne supporte pas le paramètre send_at pour les emails transactionnels via Send API. Le scheduling n'est disponible que pour les campagnes marketing via l'endpoint /campaigndraft. Pour le transactionnel, vous devez gérer le scheduling côté application.
Glossaire
-
SPF (Sender Policy Framework) : Protocole d'authentification qui liste les serveurs autorisés à envoyer des emails pour un domaine. SPF authentifie le domaine du Return-Path. Avec Mailjet, l'include est
spf.mailjet.com. -
DKIM (DomainKeys Identified Mail) : Protocole d'authentification qui signe cryptographiquement les emails. Mailjet utilise le sélecteur
mailjetet propose des clés de 1024 à 4096 bits. -
DMARC (Domain-based Message Authentication, Reporting & Conformance) : Protocole qui vérifie l'alignement entre SPF/DKIM et le From header. Avec Mailjet, seul DKIM passe en alignement par défaut.
-
Return-Path (Envelope From) : Adresse technique utilisée pour router l'email et gérer les bounces. Chez Mailjet, c'est
bnc3.mailjet.compar défaut, ce qui empêche l'alignement SPF. -
Alignement DMARC : Vérification que le domaine authentifié (SPF ou DKIM) correspond au domaine From. Mode relaxed (défaut) accepte les sous-domaines.
-
API Key : Identifiant public Mailjet utilisé comme username pour l'authentification API et SMTP.
-
Secret Key : Clé privée Mailjet utilisée comme password. À renouveler tous les 90 jours.
-
Send API : Endpoint d'envoi d'emails Mailjet. Version v3.1 recommandée (
POST /v3.1/send). -
Rate limit : Limite de débit. Code HTTP 429 en cas de dépassement. Message v3.1 limité à 50 par appel.
-
Warm-up : Processus de montée en charge progressive d'une IP dédiée. 2-6 semaines chez Mailjet.
-
Webhook : URL HTTP appelée par Mailjet lors d'événements (delivered, bounced, etc.). Retry pendant 24h si échec.


