Dev Life
So authentifizieren Sie Ihre E-Mail für bessere Zustellraten
Wenn Sie Anwendungen entwickeln, die E-Mails versenden – wie Marketing-Plattformen oder CRM-Systeme –, müssen Ihre Nutzer darauf vertrauen können, dass die Nachrichten den Posteingang erreichen. Doch angesichts sich ständig weiterentwickelnder Anti-Spam-Maßnahmen können selbst legitime E-Mails auf Hindernisse stoßen.
E-Mail-Authentifizierungsprotokolle wie SPF, DKIM und DMARC verifizieren die Absenderidentität, verhindern Spoofing und unterstützen eine starke Absenderreputation. Dieser Beitrag erklärt, wie diese Protokolle funktionieren, wie Sie sie konfigurieren und wie Sie sicherstellen, dass sie richtig eingerichtet sind – damit Ihre E-Mails wie vorgesehen zugestellt werden.
Warum die E-Mail-Zustellbarkeit wichtig ist
Wenn Ihre Anwendung E-Mail-Funktionen bietet, müssen Sie sicherstellen, dass diese auch tatsächlich zugestellt werden. Eine falsch konfigurierte Authentifizierung sollte bei den Nutzern nicht den Eindruck erwecken, Nachrichten seien versendet worden, wenn dies nicht der Fall war.
Authentifizierung s-Konfigurationsprobleme können zu hohen Bounce-Raten, Spam-Beschwerden und zu IP-Adressen auf Blocklists führen. Zudem macht es Sie anfällig für E-Mail-Spoofing und Phishing-Angriffe, was sich auf Ihre Absenderreputation und die Sicherheitslage Ihres Unternehmens auswirken kann.
Zustellbarkeitsprobleme können zudem die Zeit Ihres Entwicklungsteams beanspruchen und die Produktivität beeinträchtigen. Denken Sie an Fälle, in denen zeitweilige Zustellungsprobleme über den Kundensupport an das Entwicklungsteam eskaliert werden. Das Entwicklungsteam muss dann seine eigentliche Arbeit unterbrechen und herausfinden, was mit den betroffenen E-Mails passiert ist – ob es Bounces gab oder andere Zustellungsprobleme auftraten. Die Diagnose solcher Probleme kann sehr zeitaufwendig sein und die Produktivität zerstören, falls sie regelmäßig auftreten.
Glücklicherweise sind das keine neuen Probleme und es gibt Lösungen, die Sie anwenden können, um Ihre E-Mail-Zustellbarkeit zu verbessern. E-Mail-Authentifizierungsprotokolle (darunter SPF, DKIM und DMARC) können eingesetzt werden, um diese Probleme abzumildern. Und wenn Sie sie gemeinsam verwenden, schaffen Sie die besten Voraussetzungen für Ihre E-Mail-Versandanwendung, um eine zuverlässige, vertrauenswürdige E-Mail-Zustellung zu gewährleisten.
Ihre E-Mail für bessere Zustellraten authentifizieren
SPF ist ein Mechanismus, mit dem Sie DNS-Einträge definieren können, die nachverfolgen, welche Server E-Mails im Namen Ihrer Domain versenden dürfen. Ohne SPF-Einträge könnte jeder gefälschte E-Mails versenden, die vorgeben, von Ihrer Domain zu stammen, und es gäbe keine Möglichkeit, diese Behauptungen zu überprüfen. Ebenso können falsch konfigurierte SPF-Einträge problematisch sein: Sie senden möglicherweise eine legitime E-Mail von Ihrer eigenen Domain, aber falls die SPF-Einträge nicht so konfiguriert sind, dass sie den sendenden Server als gültige Quelle einschließen, wird die E-Mail wahrscheinlich als Spam markiert oder abgelehnt.
SPF einrichten
Um zu überprüfen, ob Ihre Domain bereits über SPF-Einträge verfügt, können Sie ein Tool wie MxToolbox. verwenden. Oder, falls Sie das Terminal bevorzugen, können Sie den dig-Befehl folgendermaßen verwenden:
$ dig +short TXT yourdomain.com | grep spf
Falls Ihnen ein SPF-Eintrag fehlt, sehen Sie keine Ausgabe. Falls Sie jedoch bereits einen Eintrag haben, sollten Sie in etwa Folgendes sehen:
v=spf1 include:mailgun.org ~all
Dieser Eintrag besteht aus drei Hauptkomponenten:
v=spf1gibt die Version des verwendeten SPF-Protokolls an. Alle SPF-Einträge sollten mit diesem Tag beginnen.include:mailgun.orggibt an, dass die Domainmailgun.orgberechtigt ist, E-Mails im Namen Ihrer Domain zu versenden. Wenn der empfangende Mailserver eine E-Mail vonmailgun.orgerhält, sucht er nach einem SPF-Eintrag, der dies einschließt, um den sendenden Server zu validieren. Beachten Sie, dass Sie hier bei Bedarf mehrere Domains einschließen können, wie beispielsweiseinclude:mailgun.org include:google.com.~alllegt die Richtlinie für E-Mails fest, die nicht den SPF-Regeln entsprechen. In diesem Fall steht~für einen „Soft Fail“, bei dem E-Mails, die der Richtlinie nicht entsprechen, zwar akzeptiert, aber als verdächtig markiert und nicht sofort abgelehnt werden sollten. Alternativ könnten Sie -all verwenden, um einen „Hard Fail“ für E-Mails festzulegen, die der Richtlinie nicht entsprechen.
Einen SPF-Eintrag erstellen
Nachdem Sie nun die Komponenten eines SPF-Eintrags verstanden haben, ist das Erstellen eines Eintrags für Ihre Domain lediglich das Hinzufügen eines neuen TXT-DNS-Eintrags.
Falls Sie sich nicht sicher sind, wie das geht, bietet das Mailgun Helpcenter Leitfäden für die folgenden DNS-Anbieter:
Falls Sie bereits einen SPF-Eintrag haben und eine neue Domain hinzufügen müssen, beachten Sie, dass Sie für dieselbe Domain nicht mehrere SPF-Einträge hinzufügen können. Stattdessen müssen Sie Ihren bestehenden Eintrag ändern und ihm einen neuen Wert hinzufügen. Falls Ihr aktueller SPF-Eintrag beispielsweise v=spf1 include:example.com ~all lautet und Sie mailgun.org hinzufügen möchten, würde Ihr neuer Eintrag v=spf1 include:example.com include:mailgun.org ~all lauten.
Zwar sind einfache SPF-Einträge recht einfach zu erstellen und zu verwalten, sie können jedoch für Ihr Entwicklungsteam problematisch werden, wenn Sie SPF-Einträge für mehrere Versanddienste verwalten müssen. Falls Sie beispielsweise Marketing-Tools, CRMs und Messaging-Dienste nutzen, die alle E-Mails von derselben Domain versenden, könnten Sie am Ende lange, komplexe SPF-Einträge haben.
Das SPF-Protokoll hat zudem ein Limit von 10 DNS-Lookups, wobei nur die ersten 10 Lookups in Ihrem SPF-Eintrag ausgeführt werden. Falls die E-Mail innerhalb dieser 10 Lookups nicht zugeordnet wird, wird sie als nicht authentifiziert behandelt. Falls dies geschieht, gibt es einige Möglichkeiten, die Sie ausprobieren können:
- Fest zugewiesene Subdomains: Sie können jedem Versanddienst eine eigene Subdomain zuweisen und dann einfache SPF-Einträge auf jeder Subdomain definieren. Dies erleichtert die Verwaltung einer großen Anzahl von Versanddiensten und umgeht das Lookup-Limit, da jeder Eintrag minimal ist.
- Tools zur Reduzierung von SPF-Einträgen (Flattening): Es gibt Tools, um SPF-Einträge auf IP-Adressen oder IP-Bereiche zu reduzieren, was helfen kann, das Lookup-Limit einzuhalten. Dies kann jedoch neue Probleme verursachen, weshalb fest zugewiesene Subdomains möglicherweise die bessere Wahl sind.
DKIM konfigurieren
DKIM ist ein E-Mail-Authentifizierungsprotokoll, das es Ihnen ermöglicht, E-Mails mit einer digitalen Signatur zu versehen, um Manipulationen zu erkennen und zu verhindern. Wenn eine E-Mail mit DKIM signiert wird, läuft der folgende Prozess ab:

Der Hauptzweck von DKIM besteht darin zu beweisen, dass eine E-Mail nicht manipuliert wurde und mit dem ursprünglichen Inhalt angekommen ist, der vom signierenden Absenderserver gesendet wurde. Als Nebeneffekt kann es jedoch auch dazu beitragen, die Wahrscheinlichkeit zu verringern, dass die E-Mail aufgrund von Inhaltsheuristiken als Spam markiert wird. Das liegt daran, dass eine konsistente Validierung von E-Mails mit DKIM im Laufe der Zeit Ihre Absenderreputation verbessert, was letztendlich die Abhängigkeit der Spamfilter von inhaltsbasierten Spam-Flags verringert.
Zu überprüfen, ob Sie DKIM für eine Domain konfiguriert haben, ist etwas komplexer als die Überprüfung von SPF, da der DNS-Eintrag für DKIM auf einer speziellen Subdomain existiert, die einen beliebigen „Selektor“ verwendet. Da der Selektor eine beliebige alphanumerische Zeichenfolge sein kann, besteht die einzige Möglichkeit zur Bestimmung des zu prüfenden Selektors in der gleichen Methode, die auch vom empfangenden Server verwendet wird – durch Untersuchung der Kopfzeile DKIM-Signature in der E-Mail. Falls Sie sich den Rohinhalt einer mit DKIM signierten E-Mail ansehen und nach dieser Kopfzeile suchen, werden Sie in etwa Folgendes sehen:
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=dkim; t=1672618838; h=from:from:reply-to:subject:subject:date:date:message-id:message-id:to:to:cc:mime-version:mime-version:content-type:content-type:content-transfer-encoding:content-transfer-encoding:in-reply-to:in-reply-to:references:references; bh=RKkrHxZminSEI0rxtiN3+8wFv6vKCozhmrATLVIZFcw=; b=lndiW4xUpmGqbbIxjiER0FEa67zPqpmW+MqrmMcvuvgd+Gta851Jd+lU4yJ4rmiCHSPfRA gDh+ZsPC8UWZ8U5cfg14uFuvtxUWr6N9Ncy1mntgz7ZNhMIovpknioDIOLYD2wM72mglVP BAeTy2oHVZ0B6tBQqC4/hePtzyF0dnU=
Diese Kopfzeile besteht aus mehreren Komponenten:
| Komponente | Zweck | Beispielwert |
|---|---|---|
| v | DKIM-Version | v=1 |
| a | Signaturalgorithmus | rsa-sha256 |
| c | Kanonisierungsmethode | relaxed |
| d | Signatur-Domain | example |
| s | Selektor für das Lookup des öffentlichen DNS-Schlüssels | dkim |
| t | Zeitstempel | 1672618838 |
| h | In der Signatur enthaltene Kopfzeilen | from:reply-to:subject:date:message-id:to:cc:mime-version:content-type:content-transfer-encoding:in-reply-to:references |
| bh | Body-Hash | RKkrHxZminSEI0 |
| b | Kryptografische Signatur | lndiW4xUpmGq |
Der empfangende Server benötigt diese Informationen zur Verifizierung der E-Mail. Er berechnet den Hash der E-Mail neu, einschließlich der in der h-Komponente angegebenen Kopfzeilen, und ruft den öffentlichen Schlüssel aus dem DNS-Eintrag mithilfe des Selektors in der s-Komponente ab (in diesem Fall dkim). Wenn der Selektor mit der Absenderdomain kombiniert wird, würde der vollständige Speicherort des DKIM-Schlüssels folgendermaßen aussehen: ._domainkey..
Falls Ihr Selektor beispielsweise dkim lautet und Ihre Domain example.com, würde sich der DNS-Eintrag unter dkim._domainkey.example.com befinden. In diesem Fall könnten Sie den DNS-Eintrag entweder über ein Online-Tool oder mit dig: anzeigen lassen:
$ dig +short TXT dkim._domainkey.example.com
Falls ein Eintrag gefunden wird, sieht Ihre Ausgabe folgendermaßen aus:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQE...
Dieser Eintrag hat drei Komponenten:
v=DKIM1gibt die DKIM-Version an.k=rsadefiniert den Schlüsseltyp (RSA ist der Standard).p=enthält den öffentlichen Schlüssel.
DKIM-Schlüssel erstellen
Beim Einrichten von DKIM müssen Sie ein Schlüsselpaar erstellen, das aus einem öffentlichen und einem privaten Schlüssel besteht. Der sendende Server verwendet den privaten Schlüssel zum Signieren von E-Mails, und der öffentliche Schlüssel wird als DNS-Eintrag veröffentlicht und vom empfangenden Server zur Validierung dieser E-Mails genutzt.
Wenn Sie DKIM für einen E-Mail-Versanddienst einrichten, generiert der Dienst in der Regel die Schlüssel für Sie (oder erlaubt Ihnen in einigen Fällen, Ihre eigenen zu verwenden). Mailgun bietet beispielsweise Schritt-für-Schritt-Anleitungen zur Generierung und Konfiguration von DKIM-Einträgen für eine bestimmte Domain. Es ist jedoch gut, den zugrundeliegenden Prozess zu verstehen, und in einigen Fällen ziehen Sie es vielleicht vor, die volle Kontrolle über das Schlüsselpaar zu übernehmen.
Für dieses Beispiel können Sie das Schlüsselpaar mit einem Tool wie openssl generieren. Generieren Sie zunächst den privaten Schlüssel wie folgt:
openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048
Dieser Befehl erstellt eine Datei namens private.key, die den privaten RSA-Schlüssel enthält. Als Nächstes können Sie diesen privaten Schlüssel mit openssl verwenden, um den öffentlichen Schlüssel zu erstellen:
openssl rsa -pubout -in private.key -out public.key
Sobald Sie den öffentlichen Schlüssel haben, können Sie den DNS-Eintrag dafür mit Ihrem gewünschten Selektor (in diesem Fall dkim) erstellen. Der DNS-Eintrag würde folgendermaßen aussehen:
dkim._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQE...etc"
Ähnlich wie bei SPF kann DKIM für Ihr Entwicklungsteam Komplexität mit sich bringen. Es können Herausforderungen auftreten, wie z. B. schlecht verwaltete private Schlüssel und Konflikte zwischen Absenderdiensten.
Der Schutz, den DKIM bietet, ist nur so gut wie Ihre Praktiken zur Schlüsselverwaltung. Ein kompromittierter Signaturschlüssel könnte Sie böswilligen Akteuren und gefälschten E-Mails aussetzen. Daher müssen Sie beim Umgang mit privaten Schlüsseln auf eine gute Sicherheitshygiene achten und diese sicher mit einem Dienst wie AWS Secrets Manager oder HashiCorp Vault speichern. Ebenso ist es oft eine gute Idee, Signaturschlüssel regelmäßig zu rotieren, da dies die potenziellen Auswirkungen eines kompromittierten Schlüssels begrenzt. Die Tatsache, dass DKIM-Selektoren beliebig wählbar sind, ist hierbei nützlich, da Sie damit beginnen können, E-Mails mit einem neuen Selektor zu versenden, die mit einem neuen privaten Schlüssel signiert sind, während Sie Ihr altes Schlüsselpaar schrittweise ausmustern.
DMARC implementieren
DMARC ist ein weiteres E-Mail-Authentifizierungsprotokoll, das dazu beitragen soll, Spoofing, Phishing und Spam abzuschwächen. DMARC baut auf SPF und DKIM auf. Genauer gesagt nutzt DMARC SPF und DKIM, um Prüfungen bei eingehenden E-Mails durchzuführen und die definierte DMARC-Richtlinie entsprechend dem Ergebnis dieser Prüfungen durchzusetzen.
DMARC führt zudem eine Abgleichsprüfung für SPF und DKIM durch, um sicherzustellen, dass die durch diese Mechanismen angegebene Domain auch mit der Domain in der Kopfzeile from: der E-Mail übereinstimmt, was den Schutz vor Spoofing weiter verschärft.
DMARC-Einträge werden auf einer bekannten Subdomain (_dmarc) Ihrer Absenderdomain veröffentlicht. Falls Sie beispielsweise den DMARC-Eintrag von example.com mit dig überprüfen möchten, würden Sie einen Befehl wie diesen ausführen:
$ dig +short TXT _dmarc.example.com
Falls Sie einen Eintrag für diese Domain konfiguriert hätten, würde Ihre Ausgabe folgendermaßen aussehen:
"v=DMARC1; p=quarantine; pct=100; adkim=s; aspf=s"
Dieser Beispieleintrag enthält fünf Komponenten. Ein DMARC-Eintrag kann jedoch noch weitere mögliche Komponenten enthalten:
| Komponente | Zweck | Beispielwert(e) |
|---|---|---|
| v | DMARC-Version | Aktuell immer DMARC1 |
| p | Anzuwendende Richtlinie für nicht konforme E-Mails | Mögliche Werte sind none, quarantine oder reject |
| rua | Berichts-URI für aggregierte Berichte (E-Mail-Adressen, an die Berichte gesendet werden) | mailto |
| ruf | Berichts-URI für forensische Berichte (E-Mail-Adressen, an die detaillierte Berichte gesendet werden) | mailto |
| adkim | DKIM-Abgleichmodus | r für relaxed, s für strict |
| aspf | SPF-Abgleichmodus | r für relaxed, s für strict |
| pct | Prozentsatz der E-Mails, die der DMARC-Richtlinie unterliegen | 0–100 |
| fo | Forensische Berichtsoptionen | 0 für „alle Fehler“, 1 für „nur DKIM-Fehler“ |
Ein Schlüsselkonzept für DMARC ist die Idee des „Abgleichs“ (Alignment). Der Abgleich bestimmt, wie genau die in SPF und DKIM verwendeten Domains mit der Domain in der Kopfzeile from: der E-Mail übereinstimmen müssen. Der Abgleichmodus wird durch die Komponenten adkim und aspf des DMARC-Eintrags gesteuert, die folgende Bedeutungen haben:
- DKIM-Abgleich:
- Streng (Strict)
(adkim=s):Die Domain in der DKIM-Signatur (d=) muss exakt mit derfrom:-Adresse übereinstimmen. - Gelockert (Relaxed)
(adkim=r):Die Domain in der DKIM-Signatur muss dieselbe Organisations-Domain aufweisen wie die Domain in derfrom:-Adresse. Das bedeutet, dass Subdomains zulässig sind.
- Streng (Strict)
- SPF-Abgleich:
- Streng (Strict)
(aspf=s):Die Domain im SPF-Return-Pathmuss exakt mit derfrom: addressübereinstimmen. - Gelockert (Relaxed)
(aspf=r):Die Domain im SPF-Return-Pathmuss dieselbe Organisations-Domain aufweisen wie die Domain in derfrom:-Adresse. Subdomains sind zulässig.
- Streng (Strict)
Vorausgesetzt, SPF, DKIM und DMARC sind beim Versand einer E-Mail alle korrekt konfiguriert, läuft folgende Ereignissequenz ab:

DMARC gilt als bestanden, wenn entweder SPF oder DKIM gültig und abgeglichen ist. Falls beide ungültig und/oder nicht abgeglichen sind, gilt DMARC als fehlgeschlagen, und die DMARC-Richtlinie wird durchgesetzt.
Die Richtlinie wird durch die Komponente p= definiert und hat drei mögliche Modi:
p=none:Es wird keine Aktion durchgeführt, aber es werden Berichte generiert.p=quarantine:E-Mails werden als verdächtig behandelt und an den Spam-Ordner gesendet.p=reject:E-Mails werden abgelehnt und nicht zugestellt.
Denken Sie daran, dass die von Ihnen definierte DMARC-Richtlinie keine Auswirkungen auf Ihre eingehenden E-Mails hat; sie teilt dem Rest der Welt mit, was er mit nicht authentifizierten E-Mails tun soll, die angeblich von Ihrer Domain stammen. Dies schließt die Tags für aggregierte (rua) und forensische (ruf) Berichte ein, die angeben, wohin empfangende Server Compliance-Berichte über nicht authentifizierte E-Mails senden sollen, die angeblich von Ihrer Domain stammen.
Es ist wichtig, diese Optionen festzulegen und sicherzustellen, dass die Posteingänge, auf die sie verweisen, aktiv überwacht werden. Diese Berichte sind von unschätzbarem Wert, um die E-Mail-Nutzung Ihrer Domain zu verstehen, nicht autorisierte Absender zu identifizieren und Ihre Authentifizierungseinstellungen zu verfeinern.
Wie bei den anderen behandelten E-Mail-Authentifizierungsmechanismen besteht das Einrichten Ihres DMARC-Eintrags lediglich darin, den entsprechenden TXT-DNS-Eintrag zu erstellen, der in etwa so aussehen würde:
_dmarc.example.com IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com; ruf=mailto:dmarc-failures@example.com; aspf=s; adkim=s; pct=100"
Beachten Sie, dass es von Vorteil sein kann, sich langsam heranzutasten, wenn Sie die E-Mail-Authentifizierung für eine Domain zum ersten Mal einrichten. Anstatt mit einer strikten Durchsetzung (p=reject) zu beginnen, sollten Sie eventuell mit einer schrittweisen Durchsetzung (p=none) starten und die DMARC-Berichte überwachen, um sicherzustellen, dass Ihre E-Mails die Validierung wie erwartet bestehen. Andernfalls könnte eine Fehlkonfiguration die Zustellbarkeit Ihrer legitimen E-Mails beeinträchtigen.
Zusammenfassung
E-Mail-Authentifizierungsprotokolle wie SPF, DKIM und DMARC spielen eine wichtige Rolle bei der Sicherstellung der Zustellbarkeit Ihrer E-Mails und dem Schutz der Reputation Ihrer Domains. Eine ordnungsgemäß konfigurierte E-Mail-Authentifizierung schafft Vertrauen und verbessert Ihre Absenderreputation, wodurch die Wahrscheinlichkeit sinkt, dass Ihre E-Mails als Spam markiert werden.
Falls Sie Ihre E-Mail-Authentifizierungseinstellungen noch nicht konfiguriert oder kürzlich überprüft haben, sollten Sie sich etwas Zeit nehmen, um diese Schritte für Ihre E-Mail-Infrastruktur zu überprüfen und umzusetzen. Denken Sie daran, Ihre DMARC-Berichte aktiv zu überwachen und die Zustellbarkeit Ihrer E-Mails zu testen, um sicherzustellen, dass alles korrekt konfiguriert ist. Falls Sie eine zuverlässige Ressource zum Testen und Verwalten Ihrer E-Mail-Zustellbarkeit benötigen, hat Mailgun alles, was Sie brauchen.