Aller au contenu
Docs

Guide

Passez de SendGrid à Emailit. Faites correspondre les concepts, les champs de l’API, les paramètres SMTP et les noms d’événements de l’Event Webhook, puis transférez les adresses bloquées, les modèles dynamiques et le DNS.

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 SendGrid à 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

SendGrid Emailit
Compte et sous-utilisateurs (subusers) Compte et espaces de travail. Chaque espace de travail a ses propres domaines, clés, membres et crédits.
Clé API avec permissions Clé API : Full Access, ou Sending Only, éventuellement restreinte à un domaine
Domain authentication Domaine d’envoi avec des enregistrements SPF, DKIM et return-path
Link branding Sous-domaine de suivi, un CNAME comme go.acme.com
Single sender verification Non disponible. Chaque adresse d’expéditeur doit se trouver sur un domaine vérifié.
Dynamic templates Modèles avec un alias et des versions, dont le rendu est effectué avec Temple
Event Webhook Webhooks
Inbound Parse E-mails entrants
Suppressions Adresses bloquées
Unsubscribe groups Non disponible. Utilisez des listes de contacts et les liens de désinscription des campagnes.
Contacts et listes marketing Contacts et listes de contacts
Single Sends Campagnes
Email Activity Email APIEmails et Email APILogs
Categories et custom args meta
IP dédiées et pools d’IP IP dédiées sur demande
Validation d’adresses e-mail Vérification d’e-mails

Mettre à jour vos appels API

Le POST /v3/mail/send de SendGrid devient POST /v2/emails. La requête est plus plate : il n’y a pas de personalizations, et les adresses sont de simples chaînes.

Before: SendGrid
curl https://api.sendgrid.com/v3/mail/send \
  -H "Authorization: Bearer $SENDGRID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "personalizations": [{ "to": [{ "email": "ada@example.com" }] }],
    "from": { "email": "hello@acme.com", "name": "Acme" },
    "subject": "Your receipt",
    "content": [
      { "type": "text/plain", "value": "Thanks for your order." },
      { "type": "text/html", "value": "<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@acme.com>",
    "to": "ada@example.com",
    "subject": "Your receipt",
    "text": "Thanks for your order.",
    "html": "<p>Thanks for your order.</p>"
  }'
SendGrid Emailit
Authorization: Bearer SG.… Authorization: Bearer secret_…
from: { email, name } from: "Name <email>"
personalizations[].to[] to, une chaîne ou un tableau de 50 adresses au maximum
personalizations[].cc[], bcc[] cc, bcc
reply_to: { email } reply_to
subject subject
content[] avec text/plain et text/html text et html
template_id template, un ID ou un alias de modèle
personalizations[].dynamic_template_data variables
attachments[] avec content, filename, type, content_id attachments[] avec content, filename, content_type, content_id, ou une url à la place de content
headers headers
custom_args, categories meta, un objet de valeurs de type chaîne renvoyé dans les événements webhook
send_at (horodatage Unix) scheduled_at, qui accepte le même horodatage Unix, le format ISO 8601 ou de l’anglais courant
tracking_settings.open_tracking et click_tracking tracking: { "loads": true, "clicks": true }
asm (unsubscribe groups) Non disponible
202 Accepted avec un en-tête X-Message-Id 200 avec un corps JSON : id, status: "accepted", et ids avec un ID par destinataire

Chaque destinataire d’une requête Emailit devient un e-mail distinct avec son propre ID. Pour envoyer des variables différentes à différentes personnes, ce que SendGrid fait avec plusieurs personalizations, envoyez une requête par destinataire. Ajoutez un en-tête Idempotency-Key pour sécuriser les relances. Consultez Envoyer un e-mail.

Changer les paramètres SMTP

Paramètre SendGrid Emailit
Hôte smtp.sendgrid.net smtp.emailit.com
Port 587, 465, 2525 ou 25 587 (STARTTLS), 465 (TLS), 2525, 2587 ou 25
Nom d’utilisateur apikey emailit
Mot de passe Votre clé API SendGrid Votre clé API Emailit

Emailit ne lit pas l’en-tête X-SMTPAPI. Supprimez-le et réglez plutôt le suivi au niveau du domaine. Consultez Paramètres SMTP.

Faire correspondre les événements webhook

Événement SendGrid Événement Emailit
processed email.accepted (API uniquement)
deferred email.attempted
delivered email.delivered
bounce email.bounced
dropped email.suppressed quand le destinataire figure dans la liste d’adresses bloquées
open email.loaded
click email.clicked
spamreport email.complained
unsubscribe, group_unsubscribe email.unsubscribed, pour les e-mails de campagne uniquement
POST Inbound Parse email.received, puis récupérez le contenu avec GET /emails/{id}

Comme SendGrid, Emailit envoie (POST) un tableau JSON d’événements. Les champs diffèrent :

  • 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) au lieu de sg_message_id, et data.object.to au lieu de email.
  • Vos valeurs meta reviennent dans data.object.meta.
  • Emailit signe les requêtes avec HMAC-SHA256 au lieu de la clé publique ECDSA de SendGrid. Vérifiez X-Emailit-Signature avec 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. Dans SendGrid, exportez vos Bounces, Spam Reports, Invalid Emails et Global Unsubscribes, depuis les pages Suppressions ou avec les endpoints API /v3/suppression/*. Les Blocks sont généralement temporaires : vous pouvez les laisser de côté.

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

    CSV
    email,type,reason
    old-address@example.com,recipient,sendgrid bounce
    angry@example.com,recipient,sendgrid spam report

    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 : découpez donc les listes plus longues. Les doublons sont ignorés.

Pour les désinscriptions de groupe des e-mails marketing, importez ces personnes comme contacts avec unsubscribed activé, plutôt que de les bloquer pour tous les e-mails. Consultez Gérer les adresses bloquées.

Transférer les modèles

Exportez le HTML de chaque modèle dynamique depuis SendGrid, puis importez-le dans Email MarketingTemplates ou créez-le avec l’API des modèles. Donnez à chaque modèle un alias, comme receipt, et envoyez-le avec "template": "receipt".

Les deux utilisent des doubles accolades, mais Temple est plus restreint que Handlebars :

SendGrid (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.
{{insert name "default=there"}} {{name|"there"}}
{{#if plan}}…{{else}}…{{/if}} Identique
{{#each items}}…{{/each}} Non pris en charge. Générez la liste dans votre code et transmettez-la comme une seule variable.
{{#equals plan "pro"}}…{{/equals}} Non pris en charge. Transmettez un booléen comme is_pro et utilisez {{#if is_pro}}.

Consultez Temple et Importer et exporter des modèles.

Modifier le DNS

Ajoutez votre 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 les CNAME de domain authentication ou de link branding de SendGrid. Conservez votre enregistrement DMARC. Après la bascule, supprimez les CNAME de SendGrid. Consultez Enregistrements DNS.

Si vous utilisiez Inbound Parse, faites plutôt pointer vers Emailit l’enregistrement MX de votre nom d’hôte de parsing. Pour conserver le même nom d’hôte, comme parse.acme.com, définissez l’inbound_key du domaine sur parse avec l’API. Consultez Configurer la réception.

Étapes suivantes

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

Merci pour votre retour.

Merci, nous lisons chaque message.