{"id":15556,"date":"2026-09-05T14:01:10","date_gmt":"2026-09-05T12:01:10","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/"},"modified":"2026-09-05T14:01:10","modified_gmt":"2026-09-05T12:01:10","slug":"mail-transport-security-checker-mta-sts-tls-rpt-dane","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","title":{"rendered":"Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS"},"content":{"rendered":"<div class=\"gtm-analyser-container\" style=\"background: var(--bg-panel, #1e1e24); padding: 25px; border-radius: 8px; border: 1px solid var(--border, #2a2a35);\">\n<p style=\"color: var(--text-secondary, #a0a0b0); margin-bottom: 20px;\">SPF, DKIM und DMARC sagen, wer senden darf. Ob die Mail verschl\u00fcsselt unterwegs ist, sagen sie nicht. Zwischen zwei Mailservern ist TLS von Haus aus opportunistisch: Scheitert STARTTLS oder stimmt ein Zertifikat nicht, geht die Mail im Klartext, und niemand merkt es. MTA-STS und DANE machen daraus eine Pflicht. Diese Pr\u00fcfung liest die MX-Eintr\u00e4ge, \u00f6ffnet von diesem Server aus eine SMTP-Verbindung zu bis zu drei davon, handelt STARTTLS aus und liest das Zertifikat, holt die MTA-STS-Richtlinie und den TLS-RPT-Eintrag und fragt TLSA-Eintr\u00e4ge f\u00fcr DANE ab. Es wird keine Mail gesendet; nach dem Handshake endet die Verbindung mit QUIT.<\/p>\n<div style=\"margin-bottom: 14px;\">\n        <label for=\"mt-domain\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Domain (der Teil hinter dem @)<\/label><br \/>\n        <input id=\"mt-domain\" type=\"text\" value=\"gmail.com\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box; font-family: monospace;\">\n    <\/div>\n<p style=\"color: var(--text-secondary, #a0a0b0); font-size: 0.82rem; margin-bottom: 16px;\">Von diesem Server aus: DNS-Abfragen, ein Abruf der MTA-STS-Richtlinie und ein oder zwei SMTP-Verbindungen auf Port 25 zu jedem von bis zu drei MX-Hosts, beendet mit QUIT vor jedem Umschlag. MX-Hosts in privaten, Loopback- und Link-local-Netzen werden nie kontaktiert. Die Abfrage ist durch reCAPTCHA v3 gesch\u00fctzt; die aufrufende IP-Adresse und die Domain werden eine Stunde lang gespeichert, um die Rate zu begrenzen.<\/p>\n<p>    <button id=\"mt-btn\" class=\"button\" style=\"background: var(--accent, #7ee787); color: var(--on-accent, #0b1114); border: none; padding: 12px 24px; border-radius: 6px; font-weight: 700; cursor: pointer;\">Mailtransport pr\u00fcfen<\/button><\/p>\n<div id=\"mt-ausgabe\" style=\"margin-top: 22px;\"><\/div>\n<p style=\"color: var(--text-secondary, #a0a0b0); font-size: 0.8rem; margin: 24px 0 0;\">Grenzen, die dazugeh\u00f6ren: Gepr\u00fcft werden nur die ersten drei MX-Hosts mit je einer Adresse; manche Anbieter greylisten oder weisen unbekannte Absender schon vor EHLO ab, was hier als unerreichbar erscheint, w\u00e4hrend echte Mail weiter flie\u00dft; ob TLS 1.0 oder 1.1 angenommen w\u00fcrde, wird nicht sondiert; das DNSSEC-Signal ist das AD-Flag eines \u00f6ffentlichen Resolvers, keine eigene Validierung; und MTA-STS wird aus der Sicht dieses Servers auf DNS und Richtlinie beurteilt, w\u00e4hrend ein sendender Server eine \u00e4ltere Richtlinie im Cache haben kann.<\/p>\n<\/div>\n<p><script>\n(function () {\n    'use strict';<\/p>\n<p>    const T = {\"einleitung\":\"SPF, DKIM und DMARC sagen, wer senden darf. Ob die Mail verschl\u00fcsselt unterwegs ist, sagen sie nicht. Zwischen zwei Mailservern ist TLS von Haus aus opportunistisch: Scheitert STARTTLS oder stimmt ein Zertifikat nicht, geht die Mail im Klartext, und niemand merkt es. MTA-STS und DANE machen daraus eine Pflicht. Diese Pr\u00fcfung liest die MX-Eintr\u00e4ge, \u00f6ffnet von diesem Server aus eine SMTP-Verbindung zu bis zu drei davon, handelt STARTTLS aus und liest das Zertifikat, holt die MTA-STS-Richtlinie und den TLS-RPT-Eintrag und fragt TLSA-Eintr\u00e4ge f\u00fcr DANE ab. Es wird keine Mail gesendet; nach dem Handshake endet die Verbindung mit QUIT.\",\"label_domain\":\"Domain (der Teil hinter dem @)\",\"datenschutz\":\"Von diesem Server aus: DNS-Abfragen, ein Abruf der MTA-STS-Richtlinie und ein oder zwei SMTP-Verbindungen auf Port 25 zu jedem von bis zu drei MX-Hosts, beendet mit QUIT vor jedem Umschlag. MX-Hosts in privaten, Loopback- und Link-local-Netzen werden nie kontaktiert. Die Abfrage ist durch reCAPTCHA v3 gesch\u00fctzt; die aufrufende IP-Adresse und die Domain werden eine Stunde lang gespeichert, um die Rate zu begrenzen.\",\"knopf\":\"Mailtransport pr\u00fcfen\",\"laeuft\":\"DNS lesen, SMTP-Verbindungen \u00f6ffnen...\",\"grenze\":\"Grenzen, die dazugeh\u00f6ren: Gepr\u00fcft werden nur die ersten drei MX-Hosts mit je einer Adresse; manche Anbieter greylisten oder weisen unbekannte Absender schon vor EHLO ab, was hier als unerreichbar erscheint, w\u00e4hrend echte Mail weiter flie\u00dft; ob TLS 1.0 oder 1.1 angenommen w\u00fcrde, wird nicht sondiert; das DNSSEC-Signal ist das AD-Flag eines \u00f6ffentlichen Resolvers, keine eigene Validierung; und MTA-STS wird aus der Sicht dieses Servers auf DNS und Richtlinie beurteilt, w\u00e4hrend ein sendender Server eine \u00e4ltere Richtlinie im Cache haben kann.\",\"schutz_titel\":\"Schutzstufe\",\"schutz_dane\":\"DANE: Zertifikat im DNS festgenagelt\",\"schutz_dane_erklaerung\":\"Jeder gepr\u00fcfte MX tr\u00e4gt einen TLSA-Eintrag, der zum vorgezeigten Zertifikat passt. Ein DANE-f\u00e4higer Absender liefert weder im Klartext noch an ein falsches Zertifikat, ganz ohne Richtlinienabruf.\",\"schutz_mta_sts_enforce\":\"MTA-STS im Modus enforce\",\"schutz_mta_sts_enforce_erklaerung\":\"Die Richtlinie verlangt TLS mit g\u00fcltigem Zertifikat auf den genannten MX-Hosts, und die Hosts erf\u00fcllen das. Absender mit MTA-STS-Unterst\u00fctzung verweigern die Klartextzustellung.\",\"schutz_mta_sts_enforce_gebrochen\":\"MTA-STS enforce, aber ein Host erf\u00fcllt es nicht\",\"schutz_mta_sts_enforce_gebrochen_erklaerung\":\"Die Richtlinie verlangt, was mindestens ein MX-Host nicht liefert. Ein Absender, der die Richtlinie beachtet, stellt an diesen Host nicht zu.\",\"schutz_mta_sts_testing\":\"MTA-STS im Modus testing\",\"schutz_mta_sts_testing_erklaerung\":\"Die Richtlinie existiert, bittet aber nur um Berichte. Die Zustellung f\u00e4llt bei TLS-Fehlern weiterhin auf Klartext zur\u00fcck.\",\"schutz_opportunistisch\":\"Nur opportunistisches TLS\",\"schutz_opportunistisch_erklaerung\":\"STARTTLS funktioniert, aber nichts verlangt es. Ein Absender, der TLS nicht aushandeln kann oder unterwegs daran gehindert wird, stellt im Klartext zu.\",\"schutz_unerreichbar\":\"MX-Hosts haben von hier nicht geantwortet\",\"schutz_unerreichbar_erklaerung\":\"Keine SMTP-Verbindung kam zustande, also lie\u00df sich zum Transport nichts messen. Greylisting oder eine Firewall sind die \u00fcbliche Ursache.\",\"schutz_klartext\":\"Klartext: STARTTLS nicht angeboten\",\"schutz_klartext_erklaerung\":\"Mindestens ein MX-Host bietet kein STARTTLS an. Mail an ihn reist unverschl\u00fcsselt.\",\"schutz_kein_mx\":\"Keine Mailzustellung\",\"schutz_kein_mx_erklaerung\":\"Die Domain hat keine MX-Eintr\u00e4ge oder einen Null-MX, der erkl\u00e4rt, keine Mail anzunehmen.\",\"h_richtlinien\":\"Richtlinien\",\"zeile_domain\":\"Domain\",\"zeile_mx\":\"MX-Eintr\u00e4ge\",\"zeile_sts_dns\":\"MTA-STS im DNS\",\"zeile_policy\":\"MTA-STS-Richtlinie\",\"zeile_tlsrpt\":\"TLS-RPT\",\"zeile_dauer\":\"Dauer\",\"zeile_limit\":\"Pr\u00fcfungen in dieser Stunde noch\",\"policy_kurz\":\"mode {mode}, max_age {tage} Tage, mx: {mx}\",\"policy_status_kurz\":\"nicht lesbar (HTTP {status})\",\"wert_keine\":\"keine\",\"wert_null_mx\":\"Null-MX (keine Mail)\",\"wert_gesperrt\":\"nicht kontaktiert\",\"h_hosts\":\"MX-Hosts\",\"spalte_host\":\"MX\",\"spalte_ip\":\"Adresse\",\"spalte_starttls\":\"STARTTLS\",\"spalte_tls\":\"TLS\",\"spalte_verifiziert\":\"Kette verifiziert\",\"spalte_zert\":\"Zertifikat\",\"spalte_name\":\"Name passt\",\"spalte_tlsa\":\"TLSA\",\"spalte_dnssec\":\"DNSSEC\",\"rest_tage\":\"noch {tage} Tage\",\"tlsa_passt\":\"passt\",\"tlsa_passt_nicht\":\"passt nicht\",\"fehlgeschlagen\":\"fehlgeschlagen\",\"h_policy_text\":\"Richtliniendatei, wie ausgeliefert\",\"h_befunde\":\"Befunde\",\"stufe_hoch\":\"Hoch\",\"stufe_mittel\":\"Mittel\",\"stufe_niedrig\":\"Niedrig\",\"stufe_info\":\"Hinweis\",\"stufe_gut\":\"In Ordnung\",\"keine_befunde\":\"Nichts zu berichten.\",\"urteil_gut\":\"Die Transportverschl\u00fcsselung passt zu dem, was die Domain ank\u00fcndigt.\",\"urteil_warnung\":\"Funktioniert heute, mit etwas, das die Zusage schw\u00e4cht oder bald bricht.\",\"urteil_kritisch\":\"Mindestens ein Befund bedeutet Klartextzustellung oder verweigerte Zustellung.\",\"ja\":\"ja\",\"nein\":\"nein\",\"fehler_kein_token\":\"Die Pr\u00fcfung konnte nicht starten, weil reCAPTCHA nicht geladen wurde.\",\"fehler_captcha\":\"reCAPTCHA hat die Anfrage als automatisiert eingestuft. Ein Neuladen der Seite hilft in der Regel.\",\"fehler_zu_viele\":\"Die Grenze von {limit} Pr\u00fcfungen je Stunde f\u00fcr diese Adresse ist erreicht.\",\"fehler_adresse\":\"Diese Domain l\u00e4sst sich nicht verwenden.\",\"fehler_zaehler\":\"Der Z\u00e4hler ist nicht erreichbar, deshalb wurde nichts gepr\u00fcft.\",\"fehler_pruefdienst\":\"Der reCAPTCHA-Dienst war nicht erreichbar.\",\"fehler_aufbau\":\"Der Dienst ist nicht richtig eingerichtet. Der Fehler liegt auf dieser Seite.\",\"fehler_eingabe\":\"Die Anfrage war nicht lesbar.\",\"fehler_methode\":\"Falsche Anfragemethode.\",\"fehler_netz\":\"Der Dienst war nicht erreichbar.\",\"fehler_antwort\":\"Die Antwort war nicht lesbar.\",\"fehler_unbekannt\":\"Etwas ging schief, wof\u00fcr es keine eigene Meldung gibt.\",\"grund_leer\":\"Es wurde nichts eingegeben.\",\"grund_zu_lang\":\"Die Eingabe ist zu lang.\",\"grund_kein_punkt\":\"Die Domain braucht mindestens einen Punkt.\",\"grund_hostform\":\"Es wird ein Domainname gebraucht, keine IP-Adresse.\",\"grund_gesperrter_bereich\":\"Der Host l\u00f6st in ein privates oder reserviertes Netz auf. Solche werden nie kontaktiert.\",\"grund_kein_dns\":\"Der MX-Hostname l\u00e4sst sich nicht aufl\u00f6sen.\",\"grund_null_mx\":\"Ein Null-MX nennt keinen Host.\",\"befund_mx_fehlt\":\"Keine MX-Eintr\u00e4ge f\u00fcr {domain} || Ohne MX-Eintr\u00e4ge fallen Absender auf den A-Eintrag der Domain selbst zur\u00fcck, und das ist meist ein Webserver. Mail an diese Domain ist entweder unzustellbar oder landet, wo sie nicht hingeh\u00f6rt.\",\"befund_null_mx\":\"Null-MX: Die Domain erkl\u00e4rt, keine Mail anzunehmen || Ein MX-Eintrag mit Priorit\u00e4t 0 und leerem Ziel (RFC 7505) sagt Absendern, es gar nicht erst zu versuchen. Richtig f\u00fcr Domains, die nur senden oder Mail gar nicht nutzen.\",\"befund_mx_liste\":\"{n} MX-Eintrag\\\/-Eintr\u00e4ge: {liste} || Die ersten {geprueft} Host(s) nach Priorit\u00e4t wurden kontaktiert.\",\"befund_sts_dns_ok\":\"MTA-STS im DNS angek\u00fcndigt (id {id}) || Der TXT-Eintrag unter _mta-sts sagt Absendern, dass eine Richtlinie existiert. Die id \u00e4ndert sich mit jeder \u00c4nderung der Richtlinie, daran erkennen Absender, wann sie neu zu holen ist.\",\"befund_sts_id_fehlt\":\"MTA-STS-Eintrag ohne id || Das Feld id ist Pflicht; Absender erkennen daran Richtlinien\u00e4nderungen. Ohne es wird eine gecachte Richtlinie wom\u00f6glich nie erneuert.\",\"befund_sts_dns_mehrfach\":\"{n} MTA-STS-Eintr\u00e4ge im DNS || Erlaubt ist genau einer. Absender, die mehrere finden, behandeln die Domain, als h\u00e4tte sie gar keine Richtlinie.\",\"befund_sts_dns_ungueltig\":\"Unlesbarer MTA-STS-Eintrag: {txt} || Der Eintrag beginnt nicht mit v=STSv1. Absender ignorieren ihn, und die Richtliniendatei wird, falls vorhanden, nie geholt.\",\"befund_sts_policy_unlesbar\":\"MTA-STS-Richtliniendatei nicht lesbar ({grund}) || Die Datei unter mta-sts.\\u003Cdomain\\u003E\\\/.well-known\\\/mta-sts.txt braucht version, mode, max_age und, au\u00dfer im Modus none, mindestens eine mx-Zeile. Absender, die sie nicht lesen k\u00f6nnen, verhalten sich, als g\u00e4be es keine Richtlinie.\",\"befund_sts_policy_ok\":\"MTA-STS-Richtlinie: mode {mode}, max_age {max_age} s ({tage} Tage), mx {mx} || Absender cachen diese Richtlinie f\u00fcr max_age und wenden sie in dieser Zeit auf jede Zustellung an.\",\"befund_sts_mode_testing\":\"MTA-STS im Modus testing || Fehler werden per TLS-RPT gemeldet, die Zustellung f\u00e4llt aber weiterhin auf Klartext zur\u00fcck. testing ist der richtige Anfang; enforce das Ziel, sobald die Berichte sauber bleiben.\",\"befund_sts_mode_none\":\"MTA-STS im Modus none || Die Richtlinie schaltet MTA-STS ausdr\u00fccklich ab, meist um eine fr\u00fchere Richtlinie stillzulegen. Sie sch\u00fctzt nichts.\",\"befund_sts_max_age_kurz\":\"Kurzes max_age: {max_age} s || Absender vergessen die Richtlinie so schnell und m\u00fcssen sie neu holen. \u00dcblich sind eine Woche oder mehr; RFC 8461 empfiehlt zwei Wochen oder l\u00e4nger, sobald die Richtlinie stabil ist.\",\"befund_sts_policy_unbekannt\":\"Unbekannte Felder in der Richtlinie: {liste} || Absender ignorieren Felder, die sie nicht kennen. Ein Tippfehler in mode oder max_age erschiene als fehlendes Feld, nicht hier.\",\"befund_sts_policy_ohne_dns\":\"Richtliniendatei existiert, aber kein MTA-STS-Eintrag im DNS || Absender holen die Richtlinie erst, nachdem sie den TXT-Eintrag unter _mta-sts.\\u003Cdomain\\u003E gefunden haben. Ohne ihn wird die Datei nie gelesen.\",\"befund_sts_policy_content_type\":\"Richtlinie als {typ} ausgeliefert || Die Richtlinie muss als text\\\/plain ausgeliefert werden. Manche Absender lehnen andere Inhaltstypen ab.\",\"befund_sts_mx_fehlt_in_policy\":\"MX-Host(s) nicht von der Richtlinie gedeckt: {liste} || Im Modus {mode} stellt ein Absender, der MTA-STS beachtet, an diese Hosts nicht zu, weil die Richtlinie sie nicht nennt. Jeder MX-Host muss auf eine mx-Zeile passen, exakt oder \u00fcber einen Platzhalter f\u00fcr eine Ebene.\",\"befund_sts_mx_gedeckt\":\"Alle {n} MX-Hosts sind von der Richtlinie gedeckt || Jeder MX-Host passt auf eine mx-Zeile der Richtlinie.\",\"befund_sts_policy_weiterleitung\":\"Richtlinienabruf wurde weitergeleitet (HTTP {status}) || RFC 8461 verbietet, beim Abruf der Richtlinie Weiterleitungen zu folgen. Absender werten das als gescheiterten Abruf und fallen auf eine gecachte Richtlinie zur\u00fcck oder auf gar keine.\",\"befund_sts_policy_status\":\"Richtlinienabruf lieferte HTTP {status} || Der MTA-STS-Eintrag k\u00fcndigt eine Richtlinie an, aber die Datei war nicht lesbar. Absender, die sie nie gecacht haben, behandeln die Domain als ungesch\u00fctzt.\",\"befund_sts_policy_fehlt\":\"Richtliniendatei unter {url} nicht erreichbar ({grund}) || Der DNS-Eintrag k\u00fcndigt MTA-STS an, aber der https-Host mta-sts.\\u003Cdomain\\u003E antwortet nicht oder hat kein g\u00fcltiges Zertifikat. Der DNS-Eintrag allein sch\u00fctzt nichts.\",\"befund_sts_fehlt\":\"Kein MTA-STS f\u00fcr {domain} || Ohne Richtlinie bleibt TLS zwischen Mailservern opportunistisch: Ein Absender, der es nicht aushandeln kann, stellt im Klartext zu. MTA-STS braucht einen TXT-Eintrag, einen kleinen https-Host und eine Textdatei; erst testing, dann enforce.\",\"befund_tlsrpt_ungueltig\":\"TLS-RPT-Eintrag unbrauchbar ({rua}) || Das Feld rua muss ein mailto:- oder https:-Ziel nennen. Ohne g\u00fcltiges Ziel haben Absender keinen Ort f\u00fcr ihre t\u00e4glichen Berichte.\",\"befund_tlsrpt_ok\":\"TLS-RPT-Berichte gehen an {rua} || Absender mit TLS-RPT-Unterst\u00fctzung senden dorthin t\u00e4glich eine Zusammenfassung der TLS-Fehler. So wird eine kaputte MTA-STS- oder DANE-Einrichtung sichtbar, bevor Mail verloren geht.\",\"befund_tlsrpt_mehrfach\":\"{n} TLS-RPT-Eintr\u00e4ge || Erlaubt ist genau einer; mehrere gelten als keiner.\",\"befund_tlsrpt_fehlt\":\"Kein TLS-RPT f\u00fcr {domain} || Fehler bei MTA-STS oder DANE bleiben der empfangenden Seite verborgen. Ein TXT-Eintrag unter _smtp._tls mit rua=mailto: gen\u00fcgt.\",\"befund_mx_gesperrt\":\"MX {host} nicht kontaktiert ({grund}) || Der Host l\u00f6st in einen Bereich auf, mit dem sich diese Pr\u00fcfung nie verbindet, oder gar nicht.\",\"befund_smtp_unerreichbar\":\"Keine SMTP-Verbindung zu {host} ({fehler}) || Port 25 hat von hier aus in der Zeit nicht geantwortet. Greylisting, eine Firewall, die nur bekannte Absender einl\u00e4sst, oder ein Host, der gerade nicht l\u00e4uft. Echter Mailfluss kann trotzdem funktionieren.\",\"befund_starttls_fehlt\":\"{host} bietet kein STARTTLS an || Die EHLO-Antwort nennt kein STARTTLS. Jeder Absender stellt an diesen Host im Klartext zu, was auch immer die Richtlinien sagen.\",\"befund_handshake_fehlgeschlagen\":\"TLS-Handshake mit {host} gescheitert ({fehler}) || STARTTLS wurde angeboten, aber die TLS-Aushandlung kam auch ohne Verifikation nicht zustande. Absender fallen auf Klartext zur\u00fcck oder stellen zur\u00fcck.\",\"befund_cert_abgelaufen\":\"Zertifikat von {host} am {datum} abgelaufen || Unter MTA-STS enforce oder DANE verweigern Absender die Zustellung. Bei opportunistischem TLS flie\u00dft die Mail weiter, verschl\u00fcsselt an ein abgelaufenes Zertifikat.\",\"befund_cert_laeuft_ab\":\"Zertifikat von {host} l\u00e4uft in {tage} Tag(en) ab, am {datum} || Weniger als zwei Wochen. Die automatische Erneuerung h\u00e4tte l\u00e4ngst laufen sollen; ein Blick auf den Erneuerungslauf ist f\u00e4llig.\",\"befund_cert_selbstsigniert\":\"{host} zeigt ein selbstsigniertes Zertifikat vor || Nur f\u00fcr opportunistisches TLS hinnehmbar. MTA-STS verlangt ein Zertifikat einer \u00f6ffentlichen CA; DANE mit usage 3 kann es stattdessen festnageln.\",\"befund_dane_passt\":\"DANE: TLSA-Eintrag f\u00fcr {host} passt zum Zertifikat ({usage} {selector} {matching}, {n} Eintrag\\\/Eintr\u00e4ge) || Ein DANE-f\u00e4higer Absender pr\u00fcft das Zertifikat gegen das DNS und lehnt alles andere ab. usage 3 nagelt das Blatt fest, usage 2 die ausstellende CA.\",\"befund_dane_passt_nicht\":\"DANE: TLSA-Eintr\u00e4ge f\u00fcr {host} passen nicht zum vorgezeigten Zertifikat ({n} Eintrag\\\/Eintr\u00e4ge) || DANE-f\u00e4hige Absender verweigern die Zustellung an diesen Host. \u00dcbliche Ursache: ein erneuertes Zertifikat mit neuem Schl\u00fcssel, w\u00e4hrend der TLSA-Eintrag noch den alten Hash tr\u00e4gt. Schl\u00fcsselwechsel unter DANE hei\u00dft: den neuen Eintrag vor dem Umschalten ver\u00f6ffentlichen.\",\"befund_dane_ohne_dnssec\":\"TLSA-Eintrag f\u00fcr {host} ohne DNSSEC-Validierung || Der Resolver hat das AD-Flag nicht gesetzt. DANE z\u00e4hlt nur, wenn der Eintrag DNSSEC-signiert ist; unsignierte TLSA-Eintr\u00e4ge ignorieren Absender.\",\"befund_starttls_ok\":\"STARTTLS funktioniert auf allen {n} MX-Host(s) || Jeder kontaktierte Host hat STARTTLS angeboten und einen TLS-Handshake abgeschlossen.\",\"befund_tls_alt\":\"Alte TLS-Version ausgehandelt: {liste} || TLS 1.0 und 1.1 sind abgek\u00fcndigt; Absender, die nur 1.2 und 1.3 annehmen, fallen auf Klartext zur\u00fcck oder lehnen ab. Der Host sollte TLS 1.2 und 1.3 anbieten.\",\"befund_cert_name_passt_nicht\":\"Zertifikat deckt den MX-Namen nicht: {liste} || Bei opportunistischem TLS f\u00e4llt das nicht auf. MTA-STS verlangt, dass das Zertifikat auf den MX-Hostnamen passt; unter enforce verweigern Absender die Zustellung.\",\"befund_cert_name_passt\":\"Zertifikate decken die MX-Namen auf allen {n} Host(s) || Jeder Host zeigt ein Zertifikat vor, das ihn benennt.\",\"befund_cert_nicht_verifiziert\":\"Zertifikatskette verifiziert nicht: {liste} || Die Kette f\u00fchrt von hier aus zu keiner vertrauensw\u00fcrdigen Wurzel. MTA-STS enforce verlangt eine g\u00fcltige Kette; opportunistische Absender nehmen sie trotzdem an.\",\"befund_dane_fehlt\":\"Keine DANE-Eintr\u00e4ge (TLSA) || DANE bindet das Zertifikat ans DNS und braucht DNSSEC auf der Zone. Es ist der st\u00e4rkere Mechanismus, h\u00e4ngt aber davon ab, dass der Absender ihn unterst\u00fctzt; MTA-STS ist der verbreiteter beachtete. Beide k\u00f6nnen nebeneinander bestehen.\",\"befund_dnssec_ad\":\"Die Zone antwortet mit DNSSEC-Validierung || Der Resolver hat bei der TLSA-Abfrage das AD-Flag gesetzt, die MX-Zone ist also signiert. Das ist die Voraussetzung f\u00fcr DANE.\"};<\/p>\n<p>    var ENDPUNKT = '\/lw-mailtls.php';\n    var SITEKEY = '6LcrPkEtAAAAAPo1QCOf-IIM2fCL0UfdJz4y2iSY';\n    var STUFEN = ['hoch', 'mittel', 'niedrig', 'info', 'gut'];\n    var SCHUTZ = ['dane', 'mta_sts_enforce', 'mta_sts_enforce_gebrochen', 'mta_sts_testing', 'opportunistisch', 'unerreichbar', 'klartext', 'kein_mx'];<\/p>\n<p>    function liste(w) { return Array.isArray(w) ? w : []; }\n    function zahl(w) { return (typeof w === 'number' && isFinite(w)) ? w : null; }\n    function text(schluessel, daten) {\n        var t = T[schluessel];\n        if (typeof t !== 'string') { return null; }\n        return t.replace(\/\\{([a-z_0-9]+)\\}\/g, function (m, k) {\n            return (daten && daten[k] !== undefined && daten[k] !== null) ? String(daten[k]) : m;\n        });\n    }\n    function drei(w) { return (w === true || w === false) ? w : null; }<\/p>\n<p>    function host(h) {\n        h = (h && typeof h === 'object') ? h : {};\n        return { host: h.host ? String(h.host) : '', prio: zahl(h.prio), ip: h.ip ? String(h.ip) : null, gesperrt: h.gesperrt ? String(h.gesperrt) : null,\n                 starttls: drei(h.starttls), protokoll: h.protokoll ? String(h.protokoll) : null, cipher: h.cipher ? String(h.cipher) : null, verifiziert: drei(h.verifiziert),\n                 zertCn: h.zert_cn ? String(h.zert_cn) : null, zertBis: h.zert_bis ? String(h.zert_bis) : null, zertTage: zahl(h.zert_tage), namePasst: drei(h.name_passt),\n                 tlsa: zahl(h.tlsa), tlsaPasst: drei(h.tlsa_passt), dnssec: drei(h.dnssec), fehler: h.fehler ? String(h.fehler) : null, dauer: zahl(h.dauer_ms) };\n    }<\/p>\n<p>    function bewerten(antwort) {\n        var a = antwort || {};\n        if (a.fehler) { return { fehler: String(a.fehler), grund: a.grund || null, limit: zahl(a.limit) }; }\n        var befunde = liste(a.befunde).map(function (f) {\n            return { key: String(f.key || ''), stufe: STUFEN.indexOf(f.stufe) === -1 ? 'info' : f.stufe, daten: (f.daten && typeof f.daten === 'object') ? f.daten : {} };\n        });\n        var gruppen = {};\n        STUFEN.forEach(function (s) { gruppen[s] = befunde.filter(function (f) { return f.stufe === s; }); });\n        var sts = (a.sts && typeof a.sts === 'object') ? a.sts : {};\n        var pol = (sts.policy && typeof sts.policy === 'object') ? sts.policy : null;\n        return {\n            fehler: null, domain: a.domain ? String(a.domain) : '',\n            urteil: (a.urteil === 'gut' || a.urteil === 'warnung' || a.urteil === 'kritisch') ? a.urteil : 'kritisch',\n            stufe: SCHUTZ.indexOf(a.stufe) === -1 ? 'kein_mx' : a.stufe,\n            mx: liste(a.mx).map(function (m) { return { host: m && m.host ? String(m.host) : '', prio: zahl(m ? m.prio : null) }; }),\n            hosts: liste(a.hosts).map(host),\n            stsDns: (sts.dns && typeof sts.dns === 'object') ? { id: sts.dns.id ? String(sts.dns.id) : null } : null,\n            stsTxt: liste(sts.txt).map(String),\n            policy: pol ? { mode: pol.mode ? String(pol.mode) : '-', maxAge: zahl(pol.max_age), mx: liste(pol.mx).map(String) } : null,\n            policyUrl: sts.policy_url ? String(sts.policy_url) : null, policyStatus: zahl(sts.policy_status), policyText: sts.policy_text ? String(sts.policy_text) : '',\n            tlsrpt: (a.tlsrpt && typeof a.tlsrpt === 'object') ? liste(a.tlsrpt.rua).map(String) : null, tlsrptTxt: liste(a.tlsrpt_txt).map(String),\n            befunde: befunde, gruppen: gruppen, dauer: zahl(a.dauer_ms), limitRest: zahl(a.limit_rest)\n        };\n    }<\/p>\n<p>    function skriptLaden() {\n        return new Promise(function (auf) {\n            if (window.grecaptcha) { auf(true); return; }\n            var s = document.createElement('script');\n            s.src = 'https:\/\/www.google.com\/recaptcha\/api.js?render=' + SITEKEY;\n            s.onload = function () { auf(true); }; s.onerror = function () { auf(false); };\n            document.head.appendChild(s);\n            setTimeout(function () { auf(!!window.grecaptcha); }, 8000);\n        });\n    }\n    function tokenHolen() {\n        return skriptLaden().then(function (da) {\n            if (!da || !window.grecaptcha || !window.grecaptcha.ready) { return null; }\n            return new Promise(function (auf) {\n                var fertig = false;\n                function einmal(w) { if (!fertig) { fertig = true; auf(w); } }\n                setTimeout(function () { einmal(null); }, 12000);\n                try {\n                    window.grecaptcha.ready(function () {\n                        if (fertig) { return; }\n                        if (!window.grecaptcha.execute) { einmal(null); return; }\n                        window.grecaptcha.execute(SITEKEY, { action: 'mailtls' }).then(function (t) { einmal(t || null); }, function () { einmal(null); });\n                    });\n                } catch (e) { einmal(null); }\n            });\n        }, function () { return null; });\n    }\n    function abfragen(domain) {\n        return tokenHolen().then(function (token) {\n            return fetch(ENDPUNKT, { method: 'POST', headers: { 'Content-Type': 'application\/json' }, body: JSON.stringify({ domain: domain, token: token || '' }) })\n                .then(function (r) { return r.json().then(function (j) { return j; }, function () { return { fehler: 'antwort' }; }); }, function () { return { fehler: 'netz' }; });\n        });\n    }<\/p>\n<p>    window.LW_TEST = window.LW_TEST || {};\n    window.LW_TEST.MT = { bewerten: bewerten, darstellen: null, text: text, ENDPUNKT: ENDPUNKT, STUFEN: STUFEN, SCHUTZ: SCHUTZ, T: T };<\/p>\n<p>    var btn = document.getElementById('mt-btn');\n    var out = document.getElementById('mt-ausgabe');\n    if (!btn || !out) { return; }<\/p>\n<p>    function el(tag, stil, txt) { var e = document.createElement(tag); if (stil) { e.setAttribute('style', stil); } if (txt !== undefined && txt !== null) { e.textContent = txt; } return e; }\n    function wert(id) { var e = document.getElementById(id); return e ? e.value : ''; }\n    var UEBERSCHRIFT = 'font-family: \"Nunito Sans\", sans-serif; font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.95rem; margin: 22px 0 8px;';\n    var ZELLE = 'padding: 5px 12px 5px 0; color: var(--text-secondary, #a0a0b0); font-size: 0.87rem;';\n    var ZELLE_WERT = 'padding: 5px 12px 5px 0; color: var(--text-primary, #e8e8ee); font-size: 0.87rem; font-family: monospace; word-break: break-all;';\n    var KASTEN = 'background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); border-radius: 8px; padding: 14px 16px; margin: 0 0 10px;';\n    var GUT = ' color: #7ee787;', WARN = ' color: #ffa94d;', ROT = ' color: #ff7b72;', GRAU = ' color: #8a8a99;';\n    var FARBEN = { hoch: '#ff7b72', mittel: '#ffa94d', niedrig: '#e3b341', info: '#8a8a99', gut: '#7ee787' };\n    var URTEIL = { gut: GUT, warnung: WARN, kritisch: ROT };\n    var SCHUTZ_FARBE = { dane: GUT, mta_sts_enforce: GUT, mta_sts_enforce_gebrochen: ROT, mta_sts_testing: WARN, opportunistisch: '', unerreichbar: WARN, klartext: ROT, kein_mx: GRAU };\n    function gitter(sp) { return el('div', 'display: grid; grid-template-columns: ' + sp + '; gap: 0 18px; align-items: baseline;'); }\n    function paar(g, n, w, stil) { g.appendChild(el('div', ZELLE, n)); g.appendChild(el('div', ZELLE_WERT + (stil || ''), w)); }\n    function janein(w) { return w === true ? T.ja : (w === false ? T.nein : '-'); }\n    function farbe(w) { return w === true ? GUT : (w === false ? ROT : GRAU); }<\/p>\n<p>    function darstellen(b, ziel) {\n        ziel.innerHTML = '';\n        if (b.fehler) {\n            var txt = T['fehler_' + b.fehler] || T.fehler_unbekannt;\n            if (b.grund && T['grund_' + b.grund]) { txt = txt + ' ' + T['grund_' + b.grund]; }\n            if (b.limit !== null) { txt = txt.replace('{limit}', String(b.limit)); }\n            ziel.appendChild(el('p', ZELLE + WARN + ' margin: 0;', txt));\n            return;\n        }\n        ziel.appendChild(el('div', 'font-size: 1.05rem; font-weight: 700; margin: 0 0 6px;' + URTEIL[b.urteil], T['urteil_' + b.urteil]));\n        ziel.appendChild(el('div', 'font-size: 0.95rem; font-weight: 700; margin: 0 0 4px;' + SCHUTZ_FARBE[b.stufe], T.schutz_titel + ': ' + T['schutz_' + b.stufe]));\n        ziel.appendChild(el('p', ZELLE + ' margin: 0 0 12px; line-height: 1.55;', T['schutz_' + b.stufe + '_erklaerung']));<\/p>\n<p>        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_richtlinien));\n        var g = gitter('auto auto');\n        paar(g, T.zeile_domain, b.domain);\n        paar(g, T.zeile_mx, b.mx.length ? b.mx.map(function (m) { return m.prio + ' ' + (m.host || T.wert_null_mx); }).join(', ') : T.wert_keine, b.mx.length ? '' : ROT);\n        paar(g, T.zeile_sts_dns, b.stsDns ? ('v=STSv1' + (b.stsDns.id ? ', id=' + b.stsDns.id : '')) : (b.stsTxt.length ? b.stsTxt[0] : T.wert_keine), b.stsDns ? GUT : (b.stsTxt.length ? WARN : ''));\n        paar(g, T.zeile_policy, b.policy ? (text('policy_kurz', { mode: b.policy.mode, tage: b.policy.maxAge === null ? '?' : Math.round(b.policy.maxAge \/ 8640) \/ 10, mx: b.policy.mx.join(', ') || '-' })) : (b.policyStatus !== null ? text('policy_status_kurz', { status: b.policyStatus }) : T.wert_keine), b.policy && b.policy.mode === 'enforce' ? GUT : (b.policy ? WARN : ''));\n        paar(g, T.zeile_tlsrpt, b.tlsrpt ? b.tlsrpt.join(', ') : (b.tlsrptTxt.length ? b.tlsrptTxt[0] : T.wert_keine), b.tlsrpt ? GUT : '');\n        if (b.dauer !== null) { paar(g, T.zeile_dauer, b.dauer + ' ms', GRAU); }\n        if (b.limitRest !== null) { paar(g, T.zeile_limit, String(b.limitRest), GRAU); }\n        ziel.appendChild(g);<\/p>\n<p>        if (b.hosts.length) {\n            ziel.appendChild(el('div', UEBERSCHRIFT, T.h_hosts));\n            var huelle = el('div', 'overflow-x: auto;');\n            var gp = gitter('auto auto auto auto auto auto auto auto auto');\n            [T.spalte_host, T.spalte_ip, T.spalte_starttls, T.spalte_tls, T.spalte_verifiziert, T.spalte_zert, T.spalte_name, T.spalte_tlsa, T.spalte_dnssec].forEach(function (s) { gp.appendChild(el('div', ZELLE + ' font-weight: 700; color: var(--text-primary, #e8e8ee); white-space: nowrap;', s)); });\n            b.hosts.forEach(function (h) {\n                gp.appendChild(el('div', ZELLE_WERT + ' white-space: nowrap;', (h.prio !== null ? h.prio + ' ' : '') + (h.host || T.wert_null_mx)));\n                if (h.gesperrt) { gp.appendChild(el('div', ZELLE_WERT + GRAU + ' grid-column: span 8; white-space: normal;', T.wert_gesperrt + (T['grund_' + h.gesperrt] ? ' \u2013 ' + T['grund_' + h.gesperrt] : ''))); return; }\n                gp.appendChild(el('div', ZELLE_WERT + GRAU, h.ip || '-'));\n                if (h.starttls === null && h.fehler) { gp.appendChild(el('div', ZELLE_WERT + ROT + ' grid-column: span 7; white-space: normal;', T.fehlgeschlagen + ' (' + h.fehler + ')')); return; }\n                gp.appendChild(el('div', ZELLE_WERT + farbe(h.starttls), janein(h.starttls)));\n                gp.appendChild(el('div', ZELLE_WERT + (h.protokoll ? (\/1\\.[23]\/.test(h.protokoll) ? GUT : WARN) : GRAU), h.protokoll || (h.fehler ? T.fehlgeschlagen : '-')));\n                gp.appendChild(el('div', ZELLE_WERT + farbe(h.verifiziert), janein(h.verifiziert)));\n                gp.appendChild(el('div', ZELLE_WERT + (h.zertTage !== null && h.zertTage < 14 ? WARN : GRAU), h.zertCn ? h.zertCn + (h.zertTage !== null ? ' (' + text('rest_tage', { tage: h.zertTage }) + ')' : '') : '-'));\n                gp.appendChild(el('div', ZELLE_WERT + farbe(h.namePasst), janein(h.namePasst)));\n                gp.appendChild(el('div', ZELLE_WERT + (h.tlsa ? farbe(h.tlsaPasst) : GRAU), h.tlsa ? (h.tlsa + ' ' + (h.tlsaPasst === true ? T.tlsa_passt : (h.tlsaPasst === false ? T.tlsa_passt_nicht : ''))) : T.wert_keine));\n                gp.appendChild(el('div', ZELLE_WERT + (h.dnssec === true ? GUT : GRAU), janein(h.dnssec)));\n            });\n            huelle.appendChild(gp);\n            ziel.appendChild(huelle);\n        }\n\n        if (b.policyText) {\n            ziel.appendChild(el('div', UEBERSCHRIFT, T.h_policy_text));\n            var pre = el('pre', KASTEN + ' font-family: monospace; font-size: 0.82rem; color: var(--text-primary, #e8e8ee); white-space: pre-wrap; margin: 0;', b.policyText);\n            ziel.appendChild(pre);\n        }\n\n        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_befunde));\n        var irgendwas = false;\n        STUFEN.forEach(function (s) {\n            var gr = b.gruppen[s];\n            if (!gr.length) { return; }\n            irgendwas = true;\n            ziel.appendChild(el('div', 'font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.5px; margin: 14px 0 6px; color: ' + FARBEN[s] + ';', T['stufe_' + s] + ' (' + gr.length + ')'));\n            gr.forEach(function (f) {\n                var k = el('div', KASTEN + ' border-left: 3px solid ' + FARBEN[s] + ';');\n                var t = text('befund_' + f.key, f.daten) || f.key;\n                var teile = t.split(' || ');\n                k.appendChild(el('div', 'color: var(--text-primary, #e8e8ee); font-size: 0.9rem; font-weight: 700;', teile[0]));\n                if (teile[1]) { k.appendChild(el('div', ZELLE + ' padding: 6px 0 0; line-height: 1.55;', teile[1])); }\n                ziel.appendChild(k);\n            });\n        });\n        if (!irgendwas) { ziel.appendChild(el('p', ZELLE + ' margin: 0;', T.keine_befunde)); }\n    }\n    window.LW_TEST.MT.darstellen = darstellen;\n\n    var laeuft = false;\n    btn.addEventListener('click', function () {\n        if (laeuft) { return; }\n        laeuft = true; btn.disabled = true;\n        out.innerHTML = '';\n        out.appendChild(el('p', ZELLE + GRAU + ' margin: 0;', T.laeuft));\n        abfragen(wert('mt-domain')).then(function (a) { darstellen(bewerten(a), out); laeuft = false; btn.disabled = false; },\n            function () { darstellen(bewerten({ fehler: 'netz' }), out); laeuft = false; btn.disabled = false; });\n    });\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pr\u00fcft, was ein sendender Mailserver vorfindet, wenn er an eine Domain zustellt: die MX-Hosts, ob STARTTLS angeboten wird und welche TLS-Version und welches Zertifikat zur\u00fcckkommen, ob eine MTA-STS-Richtlinie und eine TLS-RPT-Adresse existieren und zusammenpassen, und ob DANE-Eintr\u00e4ge zu den Zertifikaten passen.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9283,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[92724,92301,92071],"class_list":["post-15556","page","type-page","status-publish","hentry","tag-email-de","tag-networking-de","tag-web-security-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS - Lukas Wojcik - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Pr\u00fcft, was ein sendender Mailserver vorfindet, wenn er an eine Domain zustellt: die MX-Hosts, ob STARTTLS angeboten wird und welche TLS-Version und welches Zertifikat zur\u00fcckkommen, ob eine MTA-STS-Richtlinie und eine TLS-RPT-Adresse existieren und zusammenpassen, und ob DANE-Eintr\u00e4ge zu den Zertifikaten passen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/\",\"name\":\"Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-09-05T12:01:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Toolbox\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/toolbox-2\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS - Lukas Wojcik - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","og_locale":"en_US","og_type":"article","og_title":"Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS - Lukas Wojcik - Blog","og_description":"Pr\u00fcft, was ein sendender Mailserver vorfindet, wenn er an eine Domain zustellt: die MX-Hosts, ob STARTTLS angeboten wird und welche TLS-Version und welches Zertifikat zur\u00fcckkommen, ob eine MTA-STS-Richtlinie und eine TLS-RPT-Adresse existieren und zusammenpassen, und ob DANE-Eintr\u00e4ge zu den Zertifikaten passen.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","og_site_name":"Lukas Wojcik - Blog","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","name":"Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-09-05T12:01:10+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Toolbox","item":"https:\/\/www.lukaswojcik.com\/blog\/toolbox-2\/"},{"@type":"ListItem","position":3,"name":"Mailtransport-Sicherheitspr\u00fcfer: MTA-STS, TLS-RPT, DANE und STARTTLS"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/15556","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=15556"}],"version-history":[{"count":0,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/15556\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9283"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=15556"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=15556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}