Aller au contenu
Docs

Guide

Passez de Mailgun à Emailit. Faites correspondre les domaines, les clés et les routes, convertissez les appels API encodés en formulaire en JSON, et transférez SMTP, webhooks, adresses bloquées et modèles.

Mis à jour le 1 oct. 2026

Ce guide fait correspondre les concepts, les appels API, les webhooks, les adresses bloquées et les modèles de Mailgun à leurs équivalents dans Emailit. Lisez d’abord Migrer vers Emailit pour l’ordre général et la façon de faire fonctionner les deux fournisseurs en parallèle.

Concepts

Mailgun Emailit
Compte et sous-comptes (subaccounts) Compte et espaces de travail. Chaque espace de travail a ses propres domaines, clés, membres et crédits.
Domaine, avec son propre chemin d’API /v3/<domain>/… Domaine d’envoi. Il n’y a qu’un endpoint d’envoi, et Emailit déduit le domaine de l’adresse from.
Clé API privée Clé API Full Access
Clé d’envoi de domaine Clé API Sending Only restreinte à un domaine
Identifiants SMTP par domaine Votre clé API, utilisée comme mot de passe SMTP
Modèles par domaine, avec versions Modèles par espace de travail, avec un alias et des versions
Webhooks par domaine Webhooks par espace de travail
Routes E-mails entrants avec le webhook email.received, ou l’automatisation Forward received email
Suppressions par domaine : bounces, unsubscribes, complaints Une seule liste d’adresses bloquées par espace de travail
Mailing lists Listes de contacts
Tags et variables personnalisées meta
Logs et événements Email APIEmails, Email APIEvents et Email APILogs
Validation d’e-mails Vérification d’e-mails

Mettre à jour vos appels API

Le POST /v3/<domain>/messages de Mailgun reçoit des champs de formulaire avec une authentification basique. Le POST /v2/emails d’Emailit reçoit du JSON avec un jeton bearer :

Before: Mailgun
curl -s --user "api:$MAILGUN_API_KEY" \
  https://api.mailgun.net/v3/mg.acme.com/messages \
  -F from='Acme <hello@mg.acme.com>' \
  -F to='ada@example.com' \
  -F subject='Your receipt' \
  -F text='Thanks for your order.' \
  --form-string html='<p>Thanks for your order.</p>'
After: Emailit
curl https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <hello@mg.acme.com>",
    "to": "ada@example.com",
    "subject": "Your receipt",
    "text": "Thanks for your order.",
    "html": "<p>Thanks for your order.</p>"
  }'
Mailgun Emailit
Authentification basique api:<key> Authorization: Bearer secret_…
Champs multipart/form-data Un corps JSON
from, subject, text, html Les mêmes noms
to, cc, bcc (répétés ou séparés par des virgules) to, cc, bcc sous forme de chaîne ou de tableau, 50 adresses au maximum pour chacun
h:Reply-To reply_to
h:X-My-Header headers: { "X-My-Header": "…" }
v:order-id, h:X-Mailgun-Variables meta: { "order-id": "…" }, renvoyé dans les événements webhook
template et t:variables template (un ID ou un alias) et variables
attachment, inline (envois de fichiers) attachments[] avec un content en base64 ou une url, plus content_type. Ajoutez content_id pour les images intégrées.
o:deliverytime (date RFC 2822) scheduled_at (ISO 8601, horodatage Unix ou anglais courant)
o:tracking, o:tracking-opens, o:tracking-clicks tracking: { "loads": true, "clicks": true }
o:tag meta
o:testmode Non disponible
recipient-variables (envoi par lots) Non disponible. Envoyez une requête par destinataire avec ses propres variables.
Réponse { "id": "<…>", "message": "Queued. Thank you." } 200 avec id (em_…), message_id, status: "accepted" et ids par destinataire

Si vous envoyiez depuis un sous-domaine comme mg.acme.com, ajoutez exactement ce sous-domaine dans Emailit. Les sous-domaines sont vérifiés séparément du domaine parent. Les hôtes d’API UE et US de Mailgun correspondent tous deux à l’unique endpoint d’Emailit. Consultez Envoyer un e-mail.

Changer les paramètres SMTP

Paramètre Mailgun Emailit
Hôte smtp.mailgun.org, ou l’hôte UE smtp.emailit.com
Port 587, 465, 2525 ou 25 587 (STARTTLS), 465 (TLS), 2525, 2587 ou 25
Nom d’utilisateur Votre identifiant SMTP, par exemple postmaster@mg.acme.com emailit
Mot de passe Votre mot de passe SMTP Votre clé API Emailit

Emailit ne lit pas les en-têtes X-Mailgun-*. Supprimez-les et réglez plutôt le suivi au niveau du domaine. Consultez Paramètres SMTP.

Faire correspondre les événements webhook

Événement Mailgun Événement Emailit
accepted email.accepted (API uniquement)
delivered email.delivered
failed avec la sévérité temporary email.attempted
failed avec la sévérité permanent email.bounced
opened email.loaded
clicked email.clicked
complained email.complained
unsubscribed email.unsubscribed, pour les e-mails de campagne uniquement
Route qui transfère vers une URL email.received, puis récupérez le contenu avec GET /emails/{id}

Le format des requêtes change :

  • Mailgun envoie un événement par requête, avec les détails dans event-data. Emailit envoie un tableau JSON de 100 événements au maximum. Parcourez le tableau avec une boucle.
  • Le nom de l’événement se trouve dans type, et l’e-mail dans data.object. Utilisez data.object.id, l’ID em_ de la réponse d’envoi, pour associer les événements aux messages. Vos valeurs meta se trouvent dans data.object.meta.
  • Mailgun signe un horodatage et un jeton à l’intérieur du corps. Emailit signe l’intégralité du corps brut : vérifiez X-Emailit-Signature à l’aide de X-Emailit-Timestamp et de votre secret whsec_. Consultez Signature des requêtes.
JavaScript
for (const event of req.body) {
  const email = event.data.object;
  if (event.type === 'email.bounced') markBounced(email.to, email.id);
  if (event.type === 'email.complained') unsubscribe(email.to);
}

Transférer les adresses bloquées

  1. Exportez les listes Bounces, Complaints et Unsubscribes de chaque domaine Mailgun depuis lequel vous envoyez, depuis le panneau de contrôle ou avec l’API de suppressions (/v3/<domain>/bounces, /complaints et /unsubscribes).

  2. Constituez un seul CSV avec les colonnes email,type,reason :

    CSV
    email,type,reason
    old-address@example.com,recipient,mailgun bounce
    angry@example.com,recipient,mailgun complaint

    Utilisez le type recipient pour les adresses qui ne doivent jamais recevoir d’e-mail. Il bloque les envois par l’API, par SMTP et par les campagnes. Les types bounce, complaint et unsubscribe n’arrêtent que les campagnes.

  3. Dans Email APISuppressions, sélectionnez Import et chargez le fichier. Chaque fichier peut contenir 10 000 lignes et peser 8 Mo au maximum. Les doublons sont ignorés.

Emailit a une seule liste d’adresses bloquées par espace de travail : les adresses de tous vos domaines Mailgun vont donc dans la même liste. Il n’existe pas de liste d’autorisation (allowlist). Consultez Gérer les adresses bloquées.

Transférer les modèles

Copiez le HTML de chaque modèle depuis Mailgun, puis importez-le dans Email MarketingTemplates ou créez-le avec l’API des modèles. Donnez-lui un alias et envoyez-le avec "template": "<alias>" et variables.

Les modèles Mailgun utilisent Handlebars. Temple couvre les usages courants :

Mailgun (Handlebars) Emailit (Temple)
{{first_name}} {{first_name}}
{{{html_block}}} {{html_block}}. Temple n’échappe jamais le HTML : échappez vous-même les saisies des utilisateurs.
{{#if plan}}…{{else}}…{{/if}} Identique
{{#unless plan}}…{{/unless}} {{#if plan}}{{else}}…{{/if}}
{{#each items}}…{{/each}} Non pris en charge. Générez la liste dans votre code et transmettez-la comme une seule variable.
{{#equal plan "pro"}}…{{/equal}} Non pris en charge. Transmettez un booléen comme is_pro et utilisez {{#if is_pro}}.
Pas de valeur par défaut intégrée {{first_name|"there"}} ajoute une valeur de repli

Consultez Temple et Importer et exporter des modèles.

Modifier le DNS

Ajoutez chaque domaine dans Email APIDomains et publiez les enregistrements Emailit. Ils utilisent leurs propres noms (emailit._domainkey, emailit.<domain>, et éventuellement go et inbound) : ils n’entrent donc pas en conflit avec l’enregistrement DKIM de Mailgun ni avec son CNAME de suivi email.<domain>. Vous n’avez pas besoin de modifier l’enregistrement SPF de votre domaine racine pour Emailit. Conservez votre enregistrement DMARC. Consultez Enregistrements DNS.

Après la bascule, supprimez les enregistrements DKIM et de suivi de Mailgun, et retirez include:mailgun.org de votre enregistrement SPF. Si vous recevez des e-mails via les routes Mailgun, conservez ses enregistrements MX jusqu’à ce que vous ayez déplacé ce trafic vers la réception Emailit, qui reçoit sur un sous-domaine comme inbound.acme.com.

Étapes suivantes

Cette page vous a-t-elle été utile ?

Merci pour votre retour.

Merci, nous lisons chaque message.