Aller au contenu
Docs

Guide

Passez d’Amazon SES à Emailit. Faites correspondre les identités, le bac à sable et les quotas, remplacez les appels SDK et les identifiants SMTP, et transformez les événements SNS en webhooks signés.

Mis à jour le 1 oct. 2026

Ce guide fait correspondre les concepts, les appels API, les notifications d’événements, les adresses bloquées et les modèles d’Amazon SES à 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

Amazon SES Emailit
Compte AWS dans une région Espace de travail
Identités vérifiées : domaines et adresses e-mail Domaines d’envoi. Les identités à adresse e-mail unique ne sont pas disponibles.
Enregistrements CNAME Easy DKIM Un seul enregistrement TXT DKIM, emailit._domainkey
Domaine MAIL FROM personnalisé Le return-path emailit.<your domain>, dont chaque domaine dispose
Sandbox et demande d’accès production Mode bac à sable et accès production. En mode bac à sable, vous pouvez envoyer aux adresses e-mail des comptes des membres de l’espace de travail.
Quota d’envoi et débit d’envoi maximal Limites d’envoi : e-mails par seconde et par jour, réinitialisées à minuit UTC
Identifiants IAM et signature SigV4 Clés API dans un en-tête Authorization: Bearer
Identifiants SMTP Votre clé API, utilisée comme mot de passe SMTP
Configuration sets et destinations d’événements (SNS, EventBridge, Firehose) Webhooks qui envoient du JSON signé à votre endpoint HTTPS
Liste de suppression au niveau du compte Liste d’adresses bloquées de l’espace de travail
Modèles d’e-mail Modèles avec un alias et des versions
Règles de réception (receipt rules) E-mails entrants avec le webhook email.received
Tags d’e-mail meta
IP dédiées IP dédiées sur demande
Listes de contacts Contacts, listes de contacts et campagnes

Mettre à jour vos appels API

Les appels SES sont signés avec vos identifiants AWS : vous les effectuez donc généralement via un SDK AWS. Avec Emailit, vous envoyez une requête JSON avec une clé API, ou vous utilisez le SDK Emailit de votre langage. En Node.js :

Before: Amazon SES (AWS SDK v3)
import { SESv2Client, SendEmailCommand } from '@aws-sdk/client-sesv2';

const ses = new SESv2Client({ region: 'eu-west-1' });

await ses.send(new SendEmailCommand({
  FromEmailAddress: 'Acme <hello@acme.com>',
  Destination: { ToAddresses: ['ada@example.com'] },
  Content: {
    Simple: {
      Subject: { Data: 'Your receipt' },
      Body: {
        Text: { Data: 'Thanks for your order.' },
        Html: { Data: '<p>Thanks for your order.</p>' },
      },
    },
  },
}));
After: Emailit
import { Emailit } from '@emailit/node';

const emailit = new Emailit(process.env.EMAILIT_API_KEY);

await emailit.emails.send({
  from: 'Acme <hello@acme.com>',
  to: 'ada@example.com',
  subject: 'Your receipt',
  text: 'Thanks for your order.',
  html: '<p>Thanks for your order.</p>',
});
Amazon SES (API v2 SendEmail) Emailit (POST /v2/emails)
Identifiants AWS et signature SigV4 Authorization: Bearer secret_…
FromEmailAddress from
Destination.ToAddresses, CcAddresses, BccAddresses to, cc, bcc, 50 adresses au maximum pour chacun
ReplyToAddresses reply_to
Content.Simple.Subject.Data subject
Content.Simple.Body.Html.Data, Text.Data html, text
Content.Template.TemplateName template, un alias ou un ID
Content.Template.TemplateData (une chaîne JSON) variables (un objet JSON)
Content.Raw (un message MIME complet) Envoyez le message MIME via le relais SMTP, ou reconstruisez-le avec html, text et attachments
EmailTags meta, renvoyé dans les événements webhook
ConfigurationSetName Inutile. Les événements sont envoyés à vos webhooks, et le suivi se règle par domaine ou par e-mail avec tracking.
MessageId de la réponse 200 avec id (em_…), message_id, status: "accepted" et ids par destinataire

Emailit prend aussi en charge la programmation avec scheduled_at et les relances sûres avec un en-tête Idempotency-Key, ce que SES ne propose pas à l’envoi. Consultez Envoyer un e-mail.

Changer les paramètres SMTP

Paramètre Amazon SES Emailit
Hôte email-smtp.<region>.amazonaws.com smtp.emailit.com
Port 587, 2587 ou 25 (STARTTLS), 465 ou 2465 (TLS) 587, 2587, 2525 ou 25 (STARTTLS), 465 (TLS)
Nom d’utilisateur Votre nom d’utilisateur SMTP SES emailit
Mot de passe Votre mot de passe SMTP SES Votre clé API Emailit

Emailit ne lit pas les en-têtes SES comme X-SES-CONFIGURATION-SET. Supprimez-les. Consultez Paramètres SMTP.

Faire correspondre les notifications d’événements

SES publie les événements via les configuration sets vers SNS, EventBridge ou Firehose. Emailit les envoie directement à votre endpoint HTTPS sous forme de webhooks : il n’y a donc aucun topic auquel s’abonner ni aucun abonnement à confirmer.

Type d’événement SES Événement Emailit
Send email.accepted (API uniquement)
Delivery email.delivered
DeliveryDelay email.attempted
Bounce avec bounceType Permanent email.bounced
Bounce avec bounceType Transient email.attempted pendant qu’Emailit réessaie, puis email.bounced si toutes les nouvelles tentatives échouent
Complaint email.complained
Open email.loaded
Click email.clicked
Subscription email.unsubscribed, pour les e-mails de campagne uniquement
Reject, Rendering Failure Pas d’équivalent direct. Les erreurs dans la requête, comme un modèle manquant, sont renvoyées immédiatement par l’API, et les messages qu’Emailit ne livrera pas reçoivent le statut held.
Règle de réception avec une action SNS ou Lambda email.received, puis récupérez le contenu avec GET /emails/{id}

Le payload change aussi :

  • Chaque requête Emailit est un tableau JSON de 100 événements au maximum, avec le nom dans type et l’e-mail dans data.object.
  • Utilisez data.object.id, l’ID em_ de la réponse d’envoi, au lieu du messageId de SES. Vos valeurs meta se trouvent dans data.object.meta.
  • Au lieu de vérifier les signatures des messages SNS, 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 la liste de suppression SES au niveau du compte avec l’AWS CLI. Si la sortie contient un NextToken, répétez la commande avec --next-token jusqu’à obtenir toutes les pages.

    Terminal
    aws sesv2 list-suppressed-destinations --output json \
      | jq -r '(["email","type","reason"] | @csv),
               (.SuppressedDestinationSummaries[] | [.EmailAddress, "recipient", ("ses " + .Reason)] | @csv)' \
      > suppressions.csv

    Cette commande produit un CSV avec les colonnes email,type,reason. Chaque ligne utilise le type recipient, qui bloque les envois par l’API, par SMTP et par les campagnes vers l’adresse.

  2. Si vous tenez votre propre liste de rebonds et de plaintes issus des notifications SNS, ajoutez aussi ces adresses.

  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.

Consultez Gérer les adresses bloquées.

Transférer les modèles

Récupérez chaque modèle avec aws sesv2 get-email-template --template-name <name>, puis importez son HTML dans Email MarketingTemplates ou créez-le avec l’API des modèles. Utilisez le nom du modèle SES comme alias Emailit, s’il respecte le format des alias : lettres minuscules, chiffres, - et _.

Les modèles SES utilisent des balises de type Handlebars. Temple couvre les usages courants :

Amazon SES Emailit (Temple)
{{name}}, {{user.name}} Identique
{{#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.
TemplateData sous forme de chaîne JSON variables sous forme d’objet JSON
Pas de valeur par défaut intégrée {{name|"there"}} ajoute une valeur de repli

Temple n’échappe jamais le HTML : échappez les saisies des utilisateurs avant de les transmettre. Consultez Temple.

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 Easy DKIM de SES ni avec un sous-domaine MAIL FROM personnalisé. Conservez votre enregistrement DMARC. Consultez Enregistrements DNS.

Après la bascule, supprimez les CNAME DKIM de SES et les enregistrements MAIL FROM personnalisés, puis supprimez les identités dans SES. Si vous recevez des e-mails avec des règles de réception SES, déplacez-les d’abord vers un sous-domaine de réception Emailit.

Étapes suivantes

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

Merci pour votre retour.

Merci, nous lisons chaque message.