SPF, DKIM, DMARC und BIMI — Der ultimative Guide

Julian Lang
Julian Lang

12. Mai, 2022 | 4 Min. Lesezeit

Lerne wie du deine E-Mail Adresse vor Missbrauch durch fremde Absender schützen kannst. Wie du dafür sorgst, das deine Kontaktformular E-Mails nicht mehr im Spam Ordner landen und wie man, sofern es der Empfänger Mail-Client unterstützt, ein Logo Signet zur E-Mail hinzufügt.

Table of Content SVG Icon Inhaltsverzeichnis

    In diesem Guide geht es oft um Mailserver. Damit es ein bisschen einfacher zu verstehen ist gebe ich Ihnen Namen und eine fiktive IP.

    dein Mailserver: mailserver.meiner.de (87.111.78.111)
    Hier konfigurierst du auch die DNS Einträge.

    deine Domain: meiner.de

    der Empfänger Mailserver: mailserver.empfaenger.net (170.52.72.11)

    1. SPF – Sender Policy Framework

    Der SPF ist ein DNS Eintrag der dem Mailserver (mailserver.empfaenger.net) sagt, welcher Sender (mailserver.meiner.de) berechtigt ist E-Mails für diese Domain zu versenden.

    Empfängt ein Mailserver (mailserver.empfaenger.net) also eine E-Mail, sucht er zunächst nach einem SPF Eintrag und überprüft ob die freigegebene/n IPs bzw Hostnames mit dem Absende Server im E-Mail Header übereinstimmen.

    Ist das nicht der Fall ist die Wahrscheinlichkeit groß, das diese “gefakte” oder maschinell (per PHP Mail) versendete E-Mail im Spam Ordner landet.

    Die häufigste Form eines SPF Eintrags ist der Verweis auf den hinterlegten Host des MX-Records.

    Einen SPF Eintrag erstellst du als TXT Eintrag. Der Hostname ist deine Domain meiner.de oder ein @. Das kommt auf deinen DNS Anbieter an.

    Der Wert des SPF Eintrags würde dann so aussehen:

    meiner.de    IN TXT    v=spf1 a mx -all

    Der Parameter mx verweist auf den hinterlegten Mailserver deines DNS Servers.

    Der Parameter -all bedeutet das alle E-Mails abgewiesen werden, die nicht von dem hinterlegten Hostname/s oder der hinterlegten IP/s stammen.

    Direktiven im Überblick:

    • -all
      Nicht konforme E-Mails werden abgewiesen.
    • ~all
      Nicht konforme E-Mails werden durchgelassen aber als Spam markiert.
    • ?all
      Nicht konforme E-Mails werden vermutlich einfach so durchgelassen.
    • +all
      Alle E-Mails werden durchgelassen (ziemlich unnütz).

    Zusätzliche Hostnames oder IPs whitelisten

    Möchtest du das zusätzlich zu deinem mx Eintrag mailserver.meiner.de auch mein Mailserver mailserver.julianlang.net im Namen deiner Domain meiner.de E-Mails versenden darf, kannst a:julianlang.net noch anhängen.

    Dein Eintrag sollte nun so aussehen:

    meiner.de    IN TXT    v=spf1 a mx a:julianlang.net -all

    Wenn du das Ganze nicht mit einem Hostname machen willst kannst du auch eine IP Adresse angeben:

    meiner.de    IN TXT    v=spf1 a mx ip4:87.111.78.111 -all

    Oder du kannst beides kombinieren und auch mehrere IP Adressen / Hostnames angeben:

    meiner.de    IN TXT    v=spf1 a mx a:julianlang.net a:julianlang.de ip4:192.100.100.1 ip4:87.111.78.111 -all

    Im Normalfall reicht aber der erste Beispieleintrag weiter oben.

    Hier kannst du Überprüfen ob dein SPF Eintrag erfolgreich gesetzt ist: easydmarc.com/tools/spf-lookup

    2. DKIM – Domain Keys Identified Mail

    Der erste Schritt mit SPF ist getan, nun kommt der große Bruder DKIM.

    Das Prinzip ist gleich wir möchten dem Empfänger Mailserver mailserver.empfaenger.net mitteilen, das diese E-Mail nur von unserem Mailserver mailserver.meiner.de gesendet werden darf.

    Zusätzlich zu der IP Prüfung im E-Mail Header, signiert unser Mailserver mailserver.meiner.de die E-Mail zusätzlich.

    Dazu muss ein Schlüsselpaar generiert werden. Das übernimmt dein Hoster für dich. Wie das bei den Gängisten funktioniert kannst du weiter unten nachlesen.

    Der private Schlüssel mit dem jede ausgehende E-Mail signiert wird liegt in deinem Mailserver bzw Hoster.

    Der öffentliche Schlüssel, den wir nun als DNS Eintrag setzen um dem Empfänger zu ermöglichen die E-Mail zu verifizieren, teilt dir dein Hoster mit sobald du DKIM aktiviert hast.

    hosterprefix_domainkey
        IN TXT    v=DKIM1; k=rsa; p=einesehrlangezeichenkettederprivatekey

    Hier kannst du Überprüfen ob dein DKIM Eintrag erfolgreich gesetzt ist: easydmarc.com/tools/dkim-lookup

    Du kannst dir jetzt gerne selbst eine E-Mail senden und mit diesem nützlichen Addon für Thunderbird testen ob alles funktioniert.

    Erscheint dann im Thunderbird unter den Absenderinformationen

    3. DMARC – Domain-based Message Authentication, Reporting and Conformance

    Im Idealfall hast du nun einen SPF Eintrag und DKIM aktiviert. Der DMARC sorgt nun dafür, das eine der beiden Verifizierungsmethoden erfüllt sein muss, damit die E-Mail durchgelassen wird.

    Die Funktion von DMARC funktioniert nur, wenn du SPF und DKIM aktiv hast!

    Ebenfalls legst du wieder einen TXT Eintrag an. Diesmal mit dem Name _dmarc und folgenden Parametern:

    _dmarc    IN TXT    v=DMARC1;p=reject;pct=100;rua=mailto:[email protected]

    Was passiert hier?

    Im Prinzip musst du nur v=DMARC1 und p=reject angeben. Dann werden alle E-Mails die nicht verifiziert werden können abgelehnt.

    Der Parameter rua=mailto:[email protected] sendet in gewissen Abständen einen Report, welche E-Mails abgelehnt wurden an die E-Mail Adresse: [email protected] die du vorher als Postfach anlegen musst. Du kannst natürlich auch eine andere E-Mail Adresse verwenden.

    Der Paramter pct=100 ist ebenfalls optional und sorgt dafür das für 100% aller eintreffenden E-Mails überprüft werden. Obwohl er optional ist lieber mit einfügen damit auch wirklich alles klappt.

    Hier kannst du Überprüfen ob dein DMARC Eintrag erfolgreich gesetzt ist: easydmarc.com/tools/dmarc-lookup

    Hast du alle 3 Einträge gesetzt, landen ausgehende E-Mails deiner Domain nicht mehr in den Spam Ordnern deiner Empfänger und E-Mail Spammer können deine E-Mails nicht mehr spoofen. ????

    4. Zusatz: BIMI – Dein Logo Signet als Vorschau in E-Mail Clients

    Vorher | Nachher
    BIMI fügt dein Logo in die E-Mail Vorschau ein.

    Schritt 1: Dein Logo als SVG vorbereiten

    Vermutlich hast du schon dein Logo als SVG. Allerdings gibt es ein paar Dinge zu beachten damit dein Logo auch akzeptiert wird.

    Öffne das logo.svg mit deinem Code Editor.

    Stelle die SVG Version auf 1.2 und füge den Parameter baseProfile=”tiny-ps” ein.

    <svg version="1.2" baseProfile="tiny-ps" y="0px" x="0px" ...>

    Dein SVG darf keine x und y Koordinaten haben. Entferne also y=”0px” und x=”0px”

    <svg version="1.2" baseProfile="tiny-ps" ...>

    Füge ein Titel Tag hinzu, das entweder deine Firma oder dein Name ist.

    <svg version="1.2" baseProfile="tiny-ps" ...>
    <title>Meine Firma oder auch etwas anderes</title>

    Außerdem darf die SVG Datei nicht größer als 32KB sein und muss rechteckig sein.

    Schritt 2: Dein Logo verfügbar machen

    Erstelle dir eine Subdomain z.B. static.meiner.de und installiere ein SSL Zertifikat. Es werden nur Logos akzeptiert die über eine https Verbindung eingetragen werden.

    Erstelle einen Ordner images unter der Subdomain und kopiere dein Logo dorthin.

    Das Logo muss nun unter https://static.meiner.de/assets/logo.svg verfügbar sein.

    Schritt 3: BIMI DNS Eintrag anlegen

    Erstelle einen DNS TXT-Eintrag mit dem Name default._bimi .

    Als Wert hinterlegst du den Pfad zu deinem Logo:

    default._bimi    IN TXT    v=BIMI1;l=https://static.meiner.de/assets/logo.svg;

    geschrieben von

    Autor Avatar
    Julian Lang

    ist PHP / WordPress Entwickler. Arbeitet außerdem als Allrounder bei docrelations.de und entwickelt zwei coole Projekte: jadento.de | lifeisabinge.com

    Schreibe einen Kommentar

    © 2015 - 2024 | Julian Lang Webentwickler | WordPress Entwickler | Webdesigner in Bayreuth und Umgebung
    Glücksrad drehen
    Wait Gif

    Das Glücksrad erscheint jetzt nur einmal!

    Nutze die Chance und gewinne einen Preis

    Neukunden Preise

    • 🏆: kostenlose lokale Google Font Einbindung
    • ⚡: kostenlose Performance Analyse deiner Webseite
    • 🤲: 50% Rabatt auf Stundensatz für eine Programmierstunde
      (30 Minuten kostenlos)