Zum Inhalt springen
Doku

Leitfaden

Von Amazon SES migrieren

Wechseln Sie von Amazon SES zu Emailit. Identitäten, Sandbox und Kontingente zuordnen, SDK-Aufrufe und SMTP-Zugangsdaten ersetzen und SNS-Events in signierte Webhooks umwandeln.

Aktualisiert am 1. Okt. 2026

Diese Anleitung ordnet Konzepte, API-Aufrufe, Event-Benachrichtigungen, Sperrungen und Vorlagen von Amazon SES ihren Entsprechungen in Emailit zu. Lesen Sie zuerst Zu Emailit migrieren für die allgemeine Reihenfolge und den parallelen Betrieb beider Anbieter.

Konzepte

Amazon SES Emailit
AWS-Konto in einer Region Workspace
Verifizierte Identitäten: Domains und E-Mail-Adressen Versanddomains. Identitäten für einzelne E-Mail-Adressen gibt es nicht.
Easy-DKIM-CNAME-Einträge Ein DKIM-TXT-Eintrag, emailit._domainkey
Eigene MAIL-FROM-Domain Der Return-Path emailit.<your domain>, den jede Domain hat
Sandbox und Antrag auf Produktionszugang Sandbox-Modus und Produktionszugang. Im Sandbox-Modus können Sie an die Kontoadressen von Mitgliedern des Workspace senden.
Sendekontingent und maximale Senderate Versandlimits: E-Mails pro Sekunde und pro Tag, zurückgesetzt um Mitternacht UTC
IAM-Zugangsdaten und SigV4-Signatur API-Schlüssel in einem Header Authorization: Bearer
SMTP-Zugangsdaten Ihr API-Schlüssel, als SMTP-Passwort verwendet
Konfigurationssätze und Event-Ziele (SNS, EventBridge, Firehose) Webhooks, die signiertes JSON an Ihren HTTPS-Endpunkt senden
Sperrliste auf Kontoebene Sperrliste des Workspace
E-Mail-Vorlagen Vorlagen mit Alias und Versionen
Empfangsregeln Eingehende E-Mails mit dem Webhook email.received
E-Mail-Tags meta
Dedizierte IPs Dedizierte IPs auf Anfrage
Kontaktlisten Kontakte, Kontaktlisten und Kampagnen

API-Aufrufe anpassen

SES-Aufrufe werden mit Ihren AWS-Zugangsdaten signiert, daher erfolgen sie meist über ein AWS-SDK. Bei Emailit senden Sie eine JSON-Anfrage mit einem API-Schlüssel oder nutzen das Emailit-SDK für Ihre Sprache. In 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)
AWS-Zugangsdaten und SigV4-Signatur Authorization: Bearer secret_…
FromEmailAddress from
Destination.ToAddresses, CcAddresses, BccAddresses to, cc, bcc, jeweils bis zu 50
ReplyToAddresses reply_to
Content.Simple.Subject.Data subject
Content.Simple.Body.Html.Data, Text.Data html, text
Content.Template.TemplateName template, ein Alias oder eine ID
Content.Template.TemplateData (ein JSON-String) variables (ein JSON-Objekt)
Content.Raw (eine vollständige MIME-Nachricht) Senden Sie die MIME-Nachricht über das SMTP-Relay oder bauen Sie sie mit html, text und attachments neu auf
EmailTags meta, in Webhook-Events zurückgegeben
ConfigurationSetName Nicht nötig. Events gehen an Ihre Webhooks, und Tracking wird pro Domain oder pro E-Mail mit tracking festgelegt.
Antwort MessageId 200 mit id (em_…), message_id, status: "accepted" und ids pro Empfänger

Emailit unterstützt außerdem Planung mit scheduled_at und sichere Wiederholungen mit einem Header Idempotency-Key, was SES beim Senden nicht bietet. Siehe E-Mail senden.

SMTP-Einstellungen umstellen

Einstellung Amazon SES Emailit
Host email-smtp.<region>.amazonaws.com smtp.emailit.com
Port 587, 2587 oder 25 (STARTTLS), 465 oder 2465 (TLS) 587, 2587, 2525 oder 25 (STARTTLS), 465 (TLS)
Benutzername Ihr SES-SMTP-Benutzername emailit
Passwort Ihr SES-SMTP-Passwort Ihr Emailit-API-Schlüssel

Emailit liest keine SES-Header wie X-SES-CONFIGURATION-SET. Entfernen Sie sie. Siehe SMTP-Einstellungen.

Event-Benachrichtigungen zuordnen

SES veröffentlicht Events über Konfigurationssätze an SNS, EventBridge oder Firehose. Emailit sendet sie als Webhooks direkt an Ihren HTTPS-Endpunkt, es gibt also kein Topic zu abonnieren oder zu bestätigen.

SES-Event-Typ Emailit-Event
Send email.accepted (nur API)
Delivery email.delivered
DeliveryDelay email.attempted
Bounce mit bounceType Permanent email.bounced
Bounce mit bounceType Transient email.attempted, während Emailit es erneut versucht, dann email.bounced, wenn alle Wiederholungen fehlschlagen
Complaint email.complained
Open email.loaded
Click email.clicked
Subscription email.unsubscribed, nur für Kampagnen-E-Mails
Reject, Rendering Failure Keine direkte Entsprechung. Fehler in der Anfrage, etwa eine fehlende Vorlage, gibt die API sofort zurück, und Nachrichten, die Emailit nicht zustellt, erhalten den Status held.
Empfangsregel mit einer SNS- oder Lambda-Aktion email.received, dann den Inhalt mit GET /emails/{id} abrufen

Auch der Payload ändert sich:

  • Jede Anfrage von Emailit ist ein JSON-Array mit bis zu 100 Events, mit dem Namen in type und der E-Mail in data.object.
  • Verwenden Sie data.object.id, die em_-ID aus der Antwort auf den Versand, statt der messageId von SES. Ihre meta-Werte stehen in data.object.meta.
  • Statt SNS-Nachrichtensignaturen zu prüfen, verifizieren Sie X-Emailit-Signature anhand von X-Emailit-Timestamp und Ihrem whsec_-Secret. Siehe Anfragesignatur.
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);
}

Sperrungen umziehen

  1. Exportieren Sie die Sperrliste auf Kontoebene von SES mit der AWS CLI. Enthält die Ausgabe ein NextToken, wiederholen Sie den Befehl mit --next-token, bis Sie alle Seiten haben.

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

    Das schreibt eine CSV-Datei mit den Spalten email,type,reason. Jede Zeile verwendet den Typ recipient, der Versände per API, SMTP und Kampagne an die Adresse blockiert.

  2. Wenn Sie eine eigene Liste von Bounces und Beschwerden aus SNS-Benachrichtigungen führen, fügen Sie diese Adressen ebenfalls hinzu.

  3. Wählen Sie unter Email APISuppressions die Option Import und laden Sie die Datei hoch. Jede Datei darf bis zu 10.000 Zeilen haben und höchstens 8 MB groß sein. Duplikate werden übersprungen.

Siehe Sperrungen verwalten.

Vorlagen umziehen

Holen Sie jede Vorlage mit aws sesv2 get-email-template --template-name <name> ab und importieren Sie dann ihr HTML unter Email MarketingTemplates oder erstellen Sie sie mit der Vorlagen-API. Verwenden Sie den SES-Vorlagennamen als Alias in Emailit, sofern er dem Alias-Format aus Kleinbuchstaben, Ziffern, - und _ entspricht.

SES-Vorlagen verwenden Tags im Handlebars-Stil. Temple deckt die üblichen Teile ab:

Amazon SES Emailit (Temple)
{{name}}, {{user.name}} Identisch
{{#if plan}}…{{else}}…{{/if}} Identisch
{{#each items}}…{{/each}} Nicht unterstützt. Rendern Sie die Liste in Ihrem Code und übergeben Sie sie als eine Variable.
TemplateData als JSON-String variables als JSON-Objekt
Kein eingebauter Standardwert {{name|"there"}} fügt einen Ersatzwert hinzu

Temple maskiert HTML nie. Maskieren Sie Benutzereingaben daher, bevor Sie sie übergeben. Siehe Temple.

DNS ändern

Fügen Sie Ihre Domain unter Email APIDomains hinzu und legen Sie die Einträge von Emailit an. Sie verwenden eigene Namen (emailit._domainkey, emailit.<domain> und optional go und inbound) und kollidieren daher nicht mit den Easy-DKIM-CNAMEs von SES oder einer eigenen MAIL-FROM-Subdomain. Behalten Sie Ihren DMARC-Eintrag. Siehe DNS-Einträge.

Entfernen Sie nach der Umstellung die DKIM-CNAMEs von SES und die Einträge der eigenen MAIL-FROM-Domain und löschen Sie die Identitäten in SES. Wenn Sie E-Mails mit SES-Empfangsregeln empfangen, verlagern Sie das zuerst auf eine Inbound-Subdomain von Emailit.

Nächste Schritte

War diese Seite hilfreich?

Danke für Ihr Feedback.

Danke, wir lesen jede Nachricht.