Aller au contenu

Mailjet

Mailjet (groupe Sinch) est une plateforme d’e-mail européenne pour l’e-mail transactionnel comme pour le marketing. Ses données sont hébergées dans l’UE par défaut et elle propose une offre gratuite exploitable, ce qui la rend populaire auprès des petites entreprises européennes.

Choisissez Mailjet si vous voulez un fournisseur basé dans l’UE avec une offre gratuite, ou si vous envoyez déjà vos newsletters via Mailjet et souhaitez envoyer vos e-mails transactionnels depuis le même compte. Pour un envoi purement transactionnel axé avant tout sur la délivrabilité, voir Postmark ; pour un hébergement dans l’UE avec une API pour développeurs, Mailgun UE. Comparaison : présentation des services d’envoi.

  • Un compte Mailjet (les nouveaux comptes peuvent passer par un bref examen d’activation).
  • Un expéditeur validé : ajoutez votre domaine dans Account settings → Senders & Domains → Add domain et authentifiez-le (SPF + DKIM), ou validez au moins l’adresse d’expéditeur elle-même.
  • Une paire de clés API (clé API + clé secrète). Les clés Mailjet ne sont pas limitées par autorisation : l’option aux droits minimaux est donc une clé de sous-compte dédiée : Account settings → REST API → API Key Management → Create a sub-account API key. Un sous-compte a ses propres expéditeurs, statistiques et quota, et peut être révoqué sans toucher à votre clé principale.
  1. Ouvrez Services d’envoi → Ajouter un service → Mailjet.
  2. Remplissez les champs :
Champ Où le trouver Exemple
Clé API Account settings → REST API → API Key Management a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
Clé secrète Même page (cliquez pour l’afficher ; elle peut être régénérée) f6e5d4c3b2a1…
Nom d’utilisateur du webhook Facultatif – le nom d’utilisateur que vous mettez dans l’URL du webhook (voir plus bas) frontmail
Mot de passe du webhook Facultatif – le mot de passe correspondant long-random-string
E-mails par seconde (max.) Facultatif ; 10/s par défaut 5
  1. Cliquez sur Vérifier et enregistrer – Frontmail appelle l’API Mailjet avec la paire de clés.
  2. Le service est enregistré une fois la vérification réussie. Les deux clés sont chiffrées avec le chiffrement d’enveloppe d’AWS KMS.

Mailjet affiche les valeurs sous Senders & Domains → votre domaine → Authentication settings :

; SPF – à fusionner avec votre enregistrement SPF existant (un seul par domaine !)
example.com. TXT "v=spf1 include:spf.mailjet.com ~all"
; DKIM
mailjet._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNAD…"
; Propriété du domaine (uniquement si Mailjet la demande)
mailjet._a1b2c3d4.example.com. TXT "a1b2c3d4e5f6…"
; DMARC
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
  • Si vous avez déjà v=spf1 include:_spf.google.com ~all, remplacez-le par v=spf1 include:_spf.google.com include:spf.mailjet.com ~all – n’ajoutez pas un deuxième enregistrement SPF.
  • L’expéditeur d’enveloppe de Mailjet est son propre domaine de rebond : l’alignement DMARC repose donc sur DKIM – assurez-vous que DKIM affiche OK.
  • Démarrez DMARC avec p=none, puis durcissez-le plus tard.

Frontmail communique avec api.mailjet.com. Mailjet stocke les données dans l’UE par défaut. Mailjet exploite aussi une infrastructure américaine distincte (api.us.mailjet.com) pour les comptes qui y ont été créés – Frontmail ne prend actuellement en charge que le point de terminaison par défaut ; utilisez donc un compte créé sur la plateforme standard (UE).

  • Offre gratuite : 200 e-mails par jour, 6 000 par mois.
  • Les offres payantes suppriment le plafond quotidien et sont facturées au mois.
  • Les nouveaux comptes peuvent être placés en cours d’examen par l’équipe conformité de Mailjet si les taux de rebonds ou de plaintes sont élevés ; l’envoi est bloqué jusqu’à la fin de l’examen.
  • Le paramètre d’API SandboxMode de Mailjet valide les messages sans les envoyer ; Frontmail ne l’utilise pas.

Mailjet les appelle Event notifications (webhooks).

  1. Copiez l’URL du webhook depuis la page du service dans Frontmail (bouton de copie) :

    https://api.frontmail.dev/webhooks/providers/mailjet/<token>
  2. Recommandé : protégez-la par Basic auth. Mailjet n’a pas de champ d’authentification distinct : mettez donc les identifiants dans l’URL et saisissez les mêmes valeurs dans les champs Frontmail Nom d’utilisateur du webhook / Mot de passe du webhook :

    https://frontmail:long-random-string@api.frontmail.dev/webhooks/providers/mailjet/<token>
  3. Dans Mailjet, ouvrez Account settings → Event notifications (webhooks) et collez l’URL pour ces événements :

Événement Mailjet Événement Frontmail
Sent (accepté par le serveur du destinataire) delivered
Bounce – hard_bounce: true bounced – ajoutée à la liste de suppression
Bounce – temporaire, Blocked enregistré comme rebond temporaire
Spam complained – ajoutée à la liste de suppression
Open opened
Click clicked
  1. Mailjet envoie un appel de test à l’enregistrement ; l’événement doit apparaître dans le journal des événements du service.

Vérification de la signature : Mailjet ne signe pas le contenu des événements. Le token secret dans l’URL identifie le service et, si vous définissez un mot de passe de webhook, Frontmail refuse toute requête dont la Basic auth ne correspond pas.

Frontmail renseigne le CustomID de Mailjet avec l’identifiant du message Frontmail pour que les événements correspondent au bon message.

  • auth – le service est cassé (mauvaise clé API ou clé secrète, 401/403, expéditeur ou domaine non validé, compte bloqué). Le service est marqué unhealthy ; le propriétaire reçoit un e-mail et une bannière dans le tableau de bord. Un service de secours défini sur le modèle prend le relais ; sinon le crédit est remboursé et le message attend dans la file d’attente des e-mails retenus en held_service_error, puis part automatiquement une fois le service réparé (revérifié à l’enregistrement et lors de la vérification d’état quotidienne).
  • permanent – ce message ne peut pas être envoyé (destinataire invalide, erreur de validation 400). Service de secours s’il est configuré, sinon failed et crédit remboursé.
  • transient – 5xx, 429, délais dépassés. Relancé avec un délai exponentiel ; après la dernière tentative, failed et remboursé.
Réponse de Mailjet Catégorie Que faire
401 – API key authentication/authorization failure auth Vérifiez la paire clé API et clé secrète ; régénérez-la si nécessaire.
403 – Forbidden / compte bloqué ou en cours d’examen auth Consultez le tableau de bord Mailjet et contactez le support de Mailjet.
400 – « The sender … is not validated / not authorized » auth Validez l’adresse ou le domaine d’expédition dans Senders & Domains (dans le bon sous-compte).
400 mj-0013 – « … is an invalid email address » permanent Voir destinataire invalide.
400 – autres erreurs de validation (objet trop long, pièce jointe trop volumineuse) permanent Corrigez le modèle ; voir Modèles HTML.
429 – Too many requests transient Limite de débit ou quotidienne atteinte ; Frontmail relance. Baissez E-mails par seconde (max.).
500 / 503, délai dépassé transient Panne chez Mailjet – Frontmail relance.
  • Domaine ajouté et authentifié dans Mailjet (include SPF + mailjet._domainkey)
  • Un seul enregistrement SPF fusionné ; DMARC p=none
  • Paire de clés API de sous-compte dédiée
  • Tester la connexion réussit
  • URL d’Event notification avec identifiants Basic auth, mêmes valeurs dans Frontmail
  • Événements activés : sent, bounce, blocked, spam (+ open, click)
  • Volume quotidien dans la limite de votre offre