Zum Inhalt springen

Domain hinzufügen und verifizieren

Um von hello@acme.com zu senden, belegst du durch das Veröffentlichen von DNS-Einträgen, dass dir acme.com gehört. Die Verifizierung richtet die DKIM-Signierung ein (damit Empfänger wissen, dass die E-Mail wirklich von dir stammt) und einen eigenen Return-Path (damit SPF und DMARC mit deiner Domain übereinstimmen).

  1. Domain hinzufügen

    add-domain.ts
    import { SpacePost } from "@spacepost/node";
    const spacepost = new SpacePost(process.env.SPACEPOST_API_KEY);
    const { data: domain, error } = await spacepost.domains.create({ name: "acme.com" });
    if (error) throw new Error(`${error.name}: ${error.message}`);
    console.log(domain.id, domain.status); // "not_started" or "pending"
    for (const r of domain.records ?? []) {
    console.log(`${r.type.padEnd(5)} ${r.name} -> ${r.value}${r.priority ? ` (priority ${r.priority})` : ""}`);
    }

    Du kannst auch das Dashboard oder spacepost domains add acme.com verwenden.

  2. DNS-Einträge anlegen

    Die Antwort enthält ein Array records und ein Array recommended_records (DMARC):

    Response (abridged)
    {
    "object": "domain",
    "id": "0192e1c4-0000-7000-8000-000000000001",
    "name": "acme.com",
    "status": "not_started",
    "region": "eu-central-1",
    "open_tracking": false,
    "click_tracking": false,
    "records": [
    { "record": "DKIM", "name": "a1b2c3d4e5f6._domainkey", "type": "CNAME", "ttl": "Auto", "status": "not_started", "value": "a1b2c3d4e5f6.dkim.amazonses.com" },
    { "record": "DKIM", "name": "g7h8i9j0k1l2._domainkey", "type": "CNAME", "ttl": "Auto", "status": "not_started", "value": "g7h8i9j0k1l2.dkim.amazonses.com" },
    { "record": "DKIM", "name": "m3n4o5p6q7r8._domainkey", "type": "CNAME", "ttl": "Auto", "status": "not_started", "value": "m3n4o5p6q7r8.dkim.amazonses.com" },
    { "record": "SPF", "name": "send", "type": "MX", "ttl": "Auto", "status": "not_started", "value": "feedback-smtp.eu-central-1.amazonses.com", "priority": 10 },
    { "record": "SPF", "name": "send", "type": "TXT", "ttl": "Auto", "status": "not_started", "value": "\"v=spf1 include:amazonses.com ~all\"" }
    ],
    "recommended_records": [
    { "record": "DMARC", "name": "_dmarc", "type": "TXT", "ttl": "Auto", "status": "not_started", "value": "\"v=DMARC1; p=none;\"" }
    ]
    }

    Lege sie bei deinem DNS-Anbieter an. Siehe unten die Einträge erklärt und die Anleitungen nach Anbieter.

  3. Verifizieren

    DNS-Änderungen können einige Minuten dauern (selten Stunden). SpacePost prüft ausstehende Domains automatisch erneut, und du kannst jederzeit selbst eine Prüfung auslösen:

    verify-domain.ts
    import { SpacePost } from "@spacepost/node";
    const spacepost = new SpacePost(process.env.SPACEPOST_API_KEY);
    const id = "0192e1c4-0000-7000-8000-000000000001";
    const { error } = await spacepost.domains.verify(id); // asks SpacePost to re-check DNS now
    if (error) throw new Error(error.message);
    const { data: domain } = await spacepost.domains.get(id);
    console.log(domain?.status); // "verified" once DKIM is confirmed

Eintragsnamen in der API sind relativ zu deiner Domain (send, _dmarc, a1b2c3d4e5f6._domainkey). Manche DNS-Anbieter verlangen den vollständigen Namen (send.acme.com); die Anleitungen nach Anbieter sagen, welche.

Eintrag Typ Name Wert Zweck
DKIM (x3) CNAME <token>._domainkey <token>.dkim.amazonses.com Veröffentlicht die öffentlichen Schlüssel, die Amazon SES für dich rotiert (“Easy DKIM”). Empfänger prüfen damit, dass jede Nachricht von deiner Domain signiert und nicht verändert wurde. Erforderlich: Die Verifizierung hängt von allen dreien ab.
Return-Path MX send feedback-smtp.<region>.amazonses.com, Priorität 10 Empfängt Bounce- und Beschwerde-Benachrichtigungen, die an send.acme.com adressiert sind. Zusammen mit dem TXT-Eintrag darunter bildet er eine eigene MAIL-FROM-Domain.
Return-Path TXT send v=spf1 include:amazonses.com ~all SPF für die Return-Path-Subdomain. Da der Envelope-Absender auf deiner Domain liegt, stimmt SPF mit deiner From-Adresse überein, was DMARC voraussetzt.
DMARC (empfohlen) TXT _dmarc v=DMARC1; p=none; Teilt Empfängern mit, was mit E-Mails geschehen soll, die die Authentifizierung nicht bestehen, und ist für Massenversender bei Gmail und Yahoo vorgeschrieben. Siehe DMARC.
Status Bedeutung
not_started Domain hinzugefügt, DNS noch nicht gesehen.
pending SpacePost prüft das DNS.
verified DKIM ist bestätigt. Du kannst von dieser Domain senden.
temporary_failure Eine Abfrage ist vorübergehend fehlgeschlagen. Sie wird automatisch wiederholt.
failed Das DNS wurde innerhalb von 72 Stunden nicht gefunden, oder ein Eintrag ist falsch. Korrigiere die Einträge und rufe verify erneut auf.

Die Domain ist verified, sobald DKIM besteht. Fehlen nur die Return-Path-Einträge, werden E-Mails weiterhin gesendet, aber die SPF-Übereinstimmung fällt auf die Domain von Amazon zurück, was die DMARC-Übereinstimmung schwächt. Behebe das für die beste Zustellbarkeit.

Jeder Eintrag in records hat einen eigenen status mit denselben Werten, sodass du genau siehst, welcher fehlt.

Ist acme.com verifiziert, kannst du von jeder Subdomain senden (news@mail.acme.com). Die Subdomain selbst (mail.acme.com) zu verifizieren, ist für Marketing-E-Mails die bessere Praxis, weil die Reputation so von deiner Domain für Transaktions-E-Mails getrennt bleibt.

Plan Domains
Free 3
Pro 10
Scale 1.000

Wenn du eine Domain hinzufügst, die ein anderes Team bereits registriert hat, erhältst du 422 validation_error (“Domain already registered”).

Kommst du nicht weiter? Siehe Fehlerbehebung.