{"id":15557,"date":"2026-09-05T14:01:13","date_gmt":"2026-09-05T12:01:13","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/narzedzia\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/"},"modified":"2026-09-05T14:01:13","modified_gmt":"2026-09-05T12:01:13","slug":"mail-transport-security-checker-mta-sts-tls-rpt-dane","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","title":{"rendered":"Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i 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 i DMARC m\u00f3wi\u0105, kto mo\u017ce wysy\u0142a\u0107. Nie m\u00f3wi\u0105 nic o tym, czy poczta podr\u00f3\u017cuje zaszyfrowana. Mi\u0119dzy dwoma serwerami pocztowymi TLS jest domy\u015blnie oportunistyczne: je\u015bli STARTTLS zawiedzie albo certyfikat jest niew\u0142a\u015bciwy, poczta idzie jawnym tekstem i nikt tego nie zauwa\u017ca. MTA-STS i DANE zamieniaj\u0105 to w wym\u00f3g. To sprawdzenie odczytuje rekordy MX, otwiera z tego serwera po\u0142\u0105czenie SMTP z maksymalnie trzema z nich, negocjuje STARTTLS i odczytuje certyfikat, pobiera polityk\u0119 MTA-STS i rekord TLS-RPT oraz odpytuje rekordy TLSA dla DANE. \u017badna poczta nie jest wysy\u0142ana; po uzgadnianiu po\u0142\u0105czenie ko\u0144czy si\u0119 poleceniem 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;\">Domena (cz\u0119\u015b\u0107 po znaku @)<\/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;\">Z tego serwera: zapytania DNS, jedno pobranie polityki MTA-STS oraz jedno lub dwa po\u0142\u0105czenia SMTP na porcie 25 z ka\u017cdym z maksymalnie trzech host\u00f3w MX, zako\u0144czone QUIT przed jak\u0105kolwiek kopert\u0105. Hosty MX w sieciach prywatnych, loopback i link-local nigdy nie s\u0105 kontaktowane. Zapytanie chroni reCAPTCHA v3; adres IP wywo\u0142uj\u0105cego i domena s\u0105 przechowywane przez godzin\u0119 w celu ograniczenia cz\u0119stotliwo\u015bci.<\/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;\">Sprawdzenie transportu poczty<\/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;\">Granice, o kt\u00f3rych warto wiedzie\u0107: sprawdzane s\u0105 tylko pierwsze trzy hosty MX po jednym adresie; niekt\u00f3rzy dostawcy stosuj\u0105 greylisting albo odrzucaj\u0105 nieznanych nadawc\u00f3w jeszcze przed EHLO, co wida\u0107 tu jako nieosi\u0105galno\u015b\u0107, podczas gdy prawdziwa poczta nadal p\u0142ynie; nie jest sprawdzane, czy TLS 1.0 lub 1.1 by\u0142yby akceptowane; sygna\u0142 DNSSEC to flaga AD publicznego resolvera, a nie w\u0142asna walidacja; a MTA-STS jest oceniane z perspektywy tego serwera na DNS i polityk\u0119, podczas gdy serwer wysy\u0142aj\u0105cy mo\u017ce mie\u0107 w pami\u0119ci starsz\u0105 polityk\u0119.<\/p>\n<\/div>\n<p><script>\n(function () {\n    'use strict';<\/p>\n<p>    const T = {\"einleitung\":\"SPF, DKIM i DMARC m\u00f3wi\u0105, kto mo\u017ce wysy\u0142a\u0107. Nie m\u00f3wi\u0105 nic o tym, czy poczta podr\u00f3\u017cuje zaszyfrowana. Mi\u0119dzy dwoma serwerami pocztowymi TLS jest domy\u015blnie oportunistyczne: je\u015bli STARTTLS zawiedzie albo certyfikat jest niew\u0142a\u015bciwy, poczta idzie jawnym tekstem i nikt tego nie zauwa\u017ca. MTA-STS i DANE zamieniaj\u0105 to w wym\u00f3g. To sprawdzenie odczytuje rekordy MX, otwiera z tego serwera po\u0142\u0105czenie SMTP z maksymalnie trzema z nich, negocjuje STARTTLS i odczytuje certyfikat, pobiera polityk\u0119 MTA-STS i rekord TLS-RPT oraz odpytuje rekordy TLSA dla DANE. \u017badna poczta nie jest wysy\u0142ana; po uzgadnianiu po\u0142\u0105czenie ko\u0144czy si\u0119 poleceniem QUIT.\",\"label_domain\":\"Domena (cz\u0119\u015b\u0107 po znaku @)\",\"datenschutz\":\"Z tego serwera: zapytania DNS, jedno pobranie polityki MTA-STS oraz jedno lub dwa po\u0142\u0105czenia SMTP na porcie 25 z ka\u017cdym z maksymalnie trzech host\u00f3w MX, zako\u0144czone QUIT przed jak\u0105kolwiek kopert\u0105. Hosty MX w sieciach prywatnych, loopback i link-local nigdy nie s\u0105 kontaktowane. Zapytanie chroni reCAPTCHA v3; adres IP wywo\u0142uj\u0105cego i domena s\u0105 przechowywane przez godzin\u0119 w celu ograniczenia cz\u0119stotliwo\u015bci.\",\"knopf\":\"Sprawdzenie transportu poczty\",\"laeuft\":\"Odczyt DNS, otwieranie po\u0142\u0105cze\u0144 SMTP...\",\"grenze\":\"Granice, o kt\u00f3rych warto wiedzie\u0107: sprawdzane s\u0105 tylko pierwsze trzy hosty MX po jednym adresie; niekt\u00f3rzy dostawcy stosuj\u0105 greylisting albo odrzucaj\u0105 nieznanych nadawc\u00f3w jeszcze przed EHLO, co wida\u0107 tu jako nieosi\u0105galno\u015b\u0107, podczas gdy prawdziwa poczta nadal p\u0142ynie; nie jest sprawdzane, czy TLS 1.0 lub 1.1 by\u0142yby akceptowane; sygna\u0142 DNSSEC to flaga AD publicznego resolvera, a nie w\u0142asna walidacja; a MTA-STS jest oceniane z perspektywy tego serwera na DNS i polityk\u0119, podczas gdy serwer wysy\u0142aj\u0105cy mo\u017ce mie\u0107 w pami\u0119ci starsz\u0105 polityk\u0119.\",\"schutz_titel\":\"Poziom ochrony\",\"schutz_dane\":\"DANE: certyfikat przypi\u0119ty w DNS\",\"schutz_dane_erklaerung\":\"Ka\u017cdy sprawdzony MX ma rekord TLSA pasuj\u0105cy do przedstawianego certyfikatu. Nadawca obs\u0142uguj\u0105cy DANE nie dostarcza ani jawnym tekstem, ani do niew\u0142a\u015bciwego certyfikatu, bez \u017cadnego pobierania polityki.\",\"schutz_mta_sts_enforce\":\"MTA-STS w trybie enforce\",\"schutz_mta_sts_enforce_erklaerung\":\"Polityka wymaga TLS z wa\u017cnym certyfikatem na wskazanych hostach MX i hosty to spe\u0142niaj\u0105. Nadawcy obs\u0142uguj\u0105cy MTA-STS odmawiaj\u0105 dostarczenia jawnym tekstem.\",\"schutz_mta_sts_enforce_gebrochen\":\"MTA-STS enforce, ale kt\u00f3ry\u015b host tego nie spe\u0142nia\",\"schutz_mta_sts_enforce_gebrochen_erklaerung\":\"Polityka wymaga tego, czego co najmniej jeden host MX nie zapewnia. Nadawca honoruj\u0105cy polityk\u0119 nie dostarczy do tego hosta.\",\"schutz_mta_sts_testing\":\"MTA-STS w trybie testing\",\"schutz_mta_sts_testing_erklaerung\":\"Polityka istnieje, ale prosi tylko o raporty. Dostarczanie nadal wraca do jawnego tekstu, gdy TLS zawiedzie.\",\"schutz_opportunistisch\":\"Tylko oportunistyczne TLS\",\"schutz_opportunistisch_erklaerung\":\"STARTTLS dzia\u0142a, ale nic go nie wymaga. Nadawca, kt\u00f3ry nie mo\u017ce wynegocjowa\u0107 TLS albo kt\u00f3remu kto\u015b po drodze to uniemo\u017cliwia, dostarcza jawnym tekstem.\",\"schutz_unerreichbar\":\"Hosty MX nie odpowiedzia\u0142y st\u0105d\",\"schutz_unerreichbar_erklaerung\":\"\u017badne po\u0142\u0105czenie SMTP nie dosz\u0142o do skutku, wi\u0119c nie da\u0142o si\u0119 nic zmierzy\u0107 o transporcie. Zwyk\u0142a przyczyna to greylisting lub zapora.\",\"schutz_klartext\":\"Jawny tekst: STARTTLS nieoferowane\",\"schutz_klartext_erklaerung\":\"Co najmniej jeden host MX nie oferuje STARTTLS. Poczta do niego podr\u00f3\u017cuje niezaszyfrowana.\",\"schutz_kein_mx\":\"Brak dostarczania poczty\",\"schutz_kein_mx_erklaerung\":\"Domena nie ma rekord\u00f3w MX albo ma null MX deklaruj\u0105cy, \u017ce nie przyjmuje poczty.\",\"h_richtlinien\":\"Polityki\",\"zeile_domain\":\"Domena\",\"zeile_mx\":\"Rekordy MX\",\"zeile_sts_dns\":\"MTA-STS w DNS\",\"zeile_policy\":\"Polityka MTA-STS\",\"zeile_tlsrpt\":\"TLS-RPT\",\"zeile_dauer\":\"Czas\",\"zeile_limit\":\"Pozosta\u0142e sprawdzenia w tej godzinie\",\"policy_kurz\":\"mode {mode}, max_age {tage} dni, mx: {mx}\",\"policy_status_kurz\":\"nieczytelna (HTTP {status})\",\"wert_keine\":\"brak\",\"wert_null_mx\":\"null MX (brak poczty)\",\"wert_gesperrt\":\"nie kontaktowano\",\"h_hosts\":\"Hosty MX\",\"spalte_host\":\"MX\",\"spalte_ip\":\"Adres\",\"spalte_starttls\":\"STARTTLS\",\"spalte_tls\":\"TLS\",\"spalte_verifiziert\":\"\u0141a\u0144cuch zweryfikowany\",\"spalte_zert\":\"Certyfikat\",\"spalte_name\":\"Nazwa pasuje\",\"spalte_tlsa\":\"TLSA\",\"spalte_dnssec\":\"DNSSEC\",\"rest_tage\":\"pozosta\u0142o {tage} dni\",\"tlsa_passt\":\"pasuje\",\"tlsa_passt_nicht\":\"nie pasuje\",\"fehlgeschlagen\":\"niepowodzenie\",\"h_policy_text\":\"Plik polityki, jak podany\",\"h_befunde\":\"Ustalenia\",\"stufe_hoch\":\"Wysoka\",\"stufe_mittel\":\"\u015arednia\",\"stufe_niedrig\":\"Niska\",\"stufe_info\":\"Informacja\",\"stufe_gut\":\"W porz\u0105dku\",\"keine_befunde\":\"Brak uwag.\",\"urteil_gut\":\"Szyfrowanie transportu jest zgodne z tym, co domena zapowiada.\",\"urteil_warnung\":\"Dzia\u0142a dzisiaj, ale co\u015b os\u0142abia gwarancj\u0119 albo wkr\u00f3tce si\u0119 zepsuje.\",\"urteil_kritisch\":\"Co najmniej jedno ustalenie oznacza dostarczanie jawnym tekstem albo odmow\u0119 dostarczenia.\",\"ja\":\"tak\",\"nein\":\"nie\",\"fehler_kein_token\":\"Sprawdzenie nie mog\u0142o si\u0119 rozpocz\u0105\u0107, poniewa\u017c reCAPTCHA si\u0119 nie za\u0142adowa\u0142a.\",\"fehler_captcha\":\"reCAPTCHA uzna\u0142a \u017c\u0105danie za zautomatyzowane. Zwykle pomaga ponowne za\u0142adowanie strony.\",\"fehler_zu_viele\":\"Osi\u0105gni\u0119to limit {limit} sprawdze\u0144 na godzin\u0119 dla tego adresu.\",\"fehler_adresse\":\"Tej domeny nie da si\u0119 u\u017cy\u0107.\",\"fehler_zaehler\":\"Licznik jest niedost\u0119pny, dlatego nic nie zosta\u0142o sprawdzone.\",\"fehler_pruefdienst\":\"Us\u0142uga reCAPTCHA by\u0142a nieosi\u0105galna.\",\"fehler_aufbau\":\"Us\u0142uga nie jest poprawnie skonfigurowana. B\u0142\u0105d le\u017cy po tej stronie.\",\"fehler_eingabe\":\"\u017b\u0105danie by\u0142o nieczytelne.\",\"fehler_methode\":\"Niew\u0142a\u015bciwa metoda \u017c\u0105dania.\",\"fehler_netz\":\"Us\u0142uga by\u0142a nieosi\u0105galna.\",\"fehler_antwort\":\"Odpowied\u017a by\u0142a nieczytelna.\",\"fehler_unbekannt\":\"Co\u015b posz\u0142o nie tak, a nie ma na to osobnego komunikatu.\",\"grund_leer\":\"Nic nie zosta\u0142o wpisane.\",\"grund_zu_lang\":\"Wpis jest za d\u0142ugi.\",\"grund_kein_punkt\":\"Domena potrzebuje co najmniej jednej kropki.\",\"grund_hostform\":\"Wymagana jest nazwa domeny, nie adres IP.\",\"grund_gesperrter_bereich\":\"Host rozwi\u0105zuje si\u0119 do sieci prywatnej lub zarezerwowanej. Takie nigdy nie s\u0105 kontaktowane.\",\"grund_kein_dns\":\"Nazwy hosta MX nie da si\u0119 rozwi\u0105za\u0107.\",\"grund_null_mx\":\"Null MX nie wskazuje \u017cadnego hosta.\",\"befund_mx_fehlt\":\"Brak rekord\u00f3w MX dla {domain} || Bez rekord\u00f3w MX nadawcy wracaj\u0105 do rekordu A samej domeny, a to zwykle serwer WWW. Poczta do tej domeny jest albo niedostarczalna, albo l\u0105duje gdzie\u015b niezamierzenie.\",\"befund_null_mx\":\"Null MX: domena deklaruje, \u017ce nie przyjmuje poczty || Rekord MX z priorytetem 0 i pustym celem (RFC 7505) m\u00f3wi nadawcom, by nawet nie pr\u00f3bowali. Poprawne dla domen, kt\u00f3re tylko wysy\u0142aj\u0105 albo w og\u00f3le nie u\u017cywaj\u0105 poczty.\",\"befund_mx_liste\":\"{n} rekord(y) MX: {liste} || Skontaktowano pierwsze {geprueft} host(y) wed\u0142ug priorytetu.\",\"befund_sts_dns_ok\":\"MTA-STS zapowiedziane w DNS (id {id}) || Rekord TXT pod _mta-sts m\u00f3wi nadawcom, \u017ce istnieje polityka. Id zmienia si\u0119 przy ka\u017cdej zmianie polityki, po tym nadawcy poznaj\u0105, kiedy pobra\u0107 j\u0105 ponownie.\",\"befund_sts_id_fehlt\":\"Rekord MTA-STS bez id || Pole id jest wymagane; nadawcy rozpoznaj\u0105 po nim zmiany polityki. Bez niego zapami\u0119tana polityka mo\u017ce nigdy nie zosta\u0107 od\u015bwie\u017cona.\",\"befund_sts_dns_mehrfach\":\"{n} rekord\u00f3w MTA-STS w DNS || Dozwolony jest dok\u0142adnie jeden. Nadawcy, kt\u00f3rzy znajd\u0105 kilka, traktuj\u0105 domen\u0119 tak, jakby nie mia\u0142a \u017cadnej polityki.\",\"befund_sts_dns_ungueltig\":\"Nieczytelny rekord MTA-STS: {txt} || Rekord nie zaczyna si\u0119 od v=STSv1. Nadawcy go ignoruj\u0105, a plik polityki, je\u015bli istnieje, nigdy nie jest pobierany.\",\"befund_sts_policy_unlesbar\":\"Plik polityki MTA-STS nie daje si\u0119 przetworzy\u0107 ({grund}) || Plik pod mta-sts.\\u003Cdomena\\u003E\\\/.well-known\\\/mta-sts.txt potrzebuje version, mode, max_age oraz, poza trybem none, co najmniej jednej linii mx. Nadawcy, kt\u00f3rzy nie potrafi\u0105 go przetworzy\u0107, zachowuj\u0105 si\u0119, jakby polityki nie by\u0142o.\",\"befund_sts_policy_ok\":\"Polityka MTA-STS: mode {mode}, max_age {max_age} s ({tage} dni), mx {mx} || Nadawcy zapami\u0119tuj\u0105 t\u0119 polityk\u0119 na max_age i stosuj\u0105 j\u0105 do ka\u017cdego dostarczenia w tym czasie.\",\"befund_sts_mode_testing\":\"MTA-STS w trybie testing || B\u0142\u0119dy s\u0105 raportowane przez TLS-RPT, ale dostarczanie nadal wraca do jawnego tekstu. Testing to w\u0142a\u015bciwy pocz\u0105tek; enforce to cel, gdy raporty pozostaj\u0105 czyste.\",\"befund_sts_mode_none\":\"MTA-STS w trybie none || Polityka wyra\u017anie wy\u0142\u0105cza MTA-STS, zwykle by wycofa\u0107 wcze\u015bniejsz\u0105 polityk\u0119. Nie daje \u017cadnej ochrony.\",\"befund_sts_max_age_kurz\":\"Kr\u00f3tkie max_age: {max_age} s || Nadawcy tak szybko zapominaj\u0105 polityk\u0119 i musz\u0105 j\u0105 pobra\u0107 ponownie. Zwyk\u0142e warto\u015bci to tydzie\u0144 lub wi\u0119cej; RFC 8461 sugeruje dwa tygodnie lub d\u0142u\u017cej, gdy polityka jest stabilna.\",\"befund_sts_policy_unbekannt\":\"Nieznane pola w polityce: {liste} || Nadawcy ignoruj\u0105 pola, kt\u00f3rych nie znaj\u0105. Liter\u00f3wka w mode lub max_age pokaza\u0142aby si\u0119 jako brakuj\u0105ce pole, nie tutaj.\",\"befund_sts_policy_ohne_dns\":\"Plik polityki istnieje, ale brak rekordu MTA-STS w DNS || Nadawcy pobieraj\u0105 polityk\u0119 dopiero po znalezieniu rekordu TXT pod _mta-sts.\\u003Cdomena\\u003E. Bez niego plik nigdy nie jest czytany.\",\"befund_sts_policy_content_type\":\"Polityka podana jako {typ} || Polityka musi by\u0107 podawana jako text\\\/plain. Niekt\u00f3rzy nadawcy odrzucaj\u0105 inne typy tre\u015bci.\",\"befund_sts_mx_fehlt_in_policy\":\"Host(y) MX nieobj\u0119te polityk\u0105: {liste} || W trybie {mode} nadawca honoruj\u0105cy MTA-STS nie dostarczy do tych host\u00f3w, bo polityka ich nie wymienia. Ka\u017cdy host MX musi pasowa\u0107 do linii mx, dok\u0142adnie albo przez symbol wieloznaczny jednego poziomu.\",\"befund_sts_mx_gedeckt\":\"Wszystkie {n} hosty MX s\u0105 obj\u0119te polityk\u0105 || Ka\u017cdy host MX pasuje do linii mx polityki.\",\"befund_sts_policy_weiterleitung\":\"Pobranie polityki zosta\u0142o przekierowane (HTTP {status}) || RFC 8461 zabrania pod\u0105\u017cania za przekierowaniami przy pobieraniu polityki. Nadawcy traktuj\u0105 to jako nieudane pobranie i wracaj\u0105 do zapami\u0119tanej polityki albo do \u017cadnej.\",\"befund_sts_policy_status\":\"Pobranie polityki zwr\u00f3ci\u0142o HTTP {status} || Rekord MTA-STS zapowiada polityk\u0119, ale pliku nie da\u0142o si\u0119 odczyta\u0107. Nadawcy, kt\u00f3rzy nigdy go nie zapami\u0119tali, traktuj\u0105 domen\u0119 jako niechronion\u0105.\",\"befund_sts_policy_fehlt\":\"Plik polityki nieosi\u0105galny pod {url} ({grund}) || Rekord DNS zapowiada MTA-STS, ale host https mta-sts.\\u003Cdomena\\u003E nie odpowiada albo nie ma wa\u017cnego certyfikatu. Sam rekord DNS niczego nie chroni.\",\"befund_sts_fehlt\":\"Brak MTA-STS dla {domain} || Bez polityki TLS mi\u0119dzy serwerami pocztowymi pozostaje oportunistyczne: nadawca, kt\u00f3ry nie mo\u017ce go wynegocjowa\u0107, dostarcza jawnym tekstem. MTA-STS potrzebuje rekordu TXT, ma\u0142ego hosta https i pliku tekstowego; najpierw tryb testing, potem enforce.\",\"befund_tlsrpt_ungueltig\":\"Rekord TLS-RPT bezu\u017cyteczny ({rua}) || Pole rua musi wskazywa\u0107 cel mailto: lub https:. Bez poprawnego celu nadawcy nie maj\u0105 dok\u0105d wysy\u0142a\u0107 dziennych raport\u00f3w.\",\"befund_tlsrpt_ok\":\"Raporty TLS-RPT trafiaj\u0105 do {rua} || Nadawcy obs\u0142uguj\u0105cy TLS-RPT wysy\u0142aj\u0105 tam codzienne podsumowanie b\u0142\u0119d\u00f3w TLS. Tak zepsuta konfiguracja MTA-STS lub DANE staje si\u0119 widoczna, zanim poczta zginie.\",\"befund_tlsrpt_mehrfach\":\"{n} rekord\u00f3w TLS-RPT || Dozwolony jest dok\u0142adnie jeden; kilka traktuje si\u0119 jako brak.\",\"befund_tlsrpt_fehlt\":\"Brak TLS-RPT dla {domain} || B\u0142\u0119dy MTA-STS lub DANE pozostaj\u0105 niewidoczne dla strony odbieraj\u0105cej. Wystarczy rekord TXT pod _smtp._tls z rua=mailto:.\",\"befund_mx_gesperrt\":\"MX {host} nie kontaktowany ({grund}) || Host rozwi\u0105zuje si\u0119 do zakresu, z kt\u00f3rym to sprawdzenie nigdy si\u0119 nie \u0142\u0105czy, albo w og\u00f3le si\u0119 nie rozwi\u0105zuje.\",\"befund_smtp_unerreichbar\":\"Brak po\u0142\u0105czenia SMTP z {host} ({fehler}) || Port 25 nie odpowiedzia\u0142 st\u0105d w wyznaczonym czasie. Greylisting, zapora wpuszczaj\u0105ca tylko znanych nadawc\u00f3w albo host, kt\u00f3ry akurat nie dzia\u0142a. Prawdziwy przep\u0142yw poczty mo\u017ce nadal dzia\u0142a\u0107.\",\"befund_starttls_fehlt\":\"{host} nie oferuje STARTTLS || Odpowied\u017a EHLO nie wymienia STARTTLS. Ka\u017cdy nadawca dostarcza do tego hosta jawnym tekstem, cokolwiek m\u00f3wi\u0105 polityki.\",\"befund_handshake_fehlgeschlagen\":\"Uzgadnianie TLS z {host} nie powiod\u0142o si\u0119 ({fehler}) || STARTTLS by\u0142o oferowane, ale negocjacja TLS nie dosz\u0142a do skutku nawet bez weryfikacji. Nadawcy wracaj\u0105 do jawnego tekstu albo odk\u0142adaj\u0105 dostarczenie.\",\"befund_cert_abgelaufen\":\"Certyfikat {host} wygas\u0142 {datum} || Pod MTA-STS enforce lub DANE nadawcy odmawiaj\u0105 dostarczenia. Przy oportunistycznym TLS poczta nadal p\u0142ynie, zaszyfrowana do wygas\u0142ego certyfikatu.\",\"befund_cert_laeuft_ab\":\"Certyfikat {host} wygasa za {tage} dni, {datum} || Mniej ni\u017c dwa tygodnie. Automatyczne odnowienie powinno ju\u017c zadzia\u0142a\u0107; czas sprawdzi\u0107 zadanie odnawiania.\",\"befund_cert_selbstsigniert\":\"{host} przedstawia certyfikat samopodpisany || Dopuszczalne tylko dla oportunistycznego TLS. MTA-STS wymaga certyfikatu od publicznego CA; DANE z usage 3 mo\u017ce go zamiast tego przypi\u0105\u0107.\",\"befund_dane_passt\":\"DANE: rekord TLSA dla {host} pasuje do certyfikatu ({usage} {selector} {matching}, {n} rekord(y)) || Nadawca obs\u0142uguj\u0105cy DANE weryfikuje certyfikat wzgl\u0119dem DNS i odrzuca wszystko inne. Usage 3 przypina li\u015b\u0107, usage 2 wystawiaj\u0105ce CA.\",\"befund_dane_passt_nicht\":\"DANE: rekordy TLSA dla {host} nie pasuj\u0105 do przedstawionego certyfikatu ({n} rekord(y)) || Nadawcy obs\u0142uguj\u0105cy DANE odmawiaj\u0105 dostarczenia do tego hosta. Zwyk\u0142a przyczyna to odnowiony certyfikat z nowym kluczem, podczas gdy rekord TLSA nadal trzyma stary hash. Zmiana klucza pod DANE oznacza opublikowanie nowego rekordu przed prze\u0142\u0105czeniem.\",\"befund_dane_ohne_dnssec\":\"Rekord TLSA dla {host} bez walidacji DNSSEC || Resolver nie ustawi\u0142 flagi AD. DANE liczy si\u0119 tylko wtedy, gdy rekord jest podpisany DNSSEC; niepodpisane rekordy TLSA nadawcy ignoruj\u0105.\",\"befund_starttls_ok\":\"STARTTLS dzia\u0142a na wszystkich {n} hostach MX || Ka\u017cdy skontaktowany host zaoferowa\u0142 STARTTLS i zako\u0144czy\u0142 uzgadnianie TLS.\",\"befund_tls_alt\":\"Wynegocjowano star\u0105 wersj\u0119 TLS: {liste} || TLS 1.0 i 1.1 s\u0105 wycofane; nadawcy akceptuj\u0105cy tylko 1.2 i 1.3 wracaj\u0105 do jawnego tekstu albo odmawiaj\u0105. Host powinien oferowa\u0107 TLS 1.2 i 1.3.\",\"befund_cert_name_passt_nicht\":\"Certyfikat nie obejmuje nazwy MX: {liste} || Przy oportunistycznym TLS to uchodzi uwadze. MTA-STS wymaga, by certyfikat pasowa\u0142 do nazwy hosta MX; pod enforce nadawcy odmawiaj\u0105 dostarczenia.\",\"befund_cert_name_passt\":\"Certyfikaty obejmuj\u0105 nazwy MX na wszystkich {n} hostach || Ka\u017cdy host przedstawia certyfikat, kt\u00f3ry go nazywa.\",\"befund_cert_nicht_verifiziert\":\"\u0141a\u0144cuch certyfikat\u00f3w nie weryfikuje si\u0119: {liste} || \u0141a\u0144cuch nie prowadzi st\u0105d do zaufanego korzenia. MTA-STS enforce wymaga wa\u017cnego \u0142a\u0144cucha; nadawcy oportunistyczni i tak go akceptuj\u0105.\",\"befund_dane_fehlt\":\"Brak rekord\u00f3w DANE (TLSA) || DANE wi\u0105\u017ce certyfikat z DNS i wymaga DNSSEC na strefie. To silniejszy mechanizm, ale zale\u017cy od obs\u0142ugi po stronie nadawcy; MTA-STS jest szerzej honorowane. Oba mog\u0105 wsp\u00f3\u0142istnie\u0107.\",\"befund_dnssec_ad\":\"Strefa odpowiada z walidacj\u0105 DNSSEC || Resolver ustawi\u0142 flag\u0119 AD przy zapytaniu TLSA, wi\u0119c strefa MX jest podpisana. To warunek wst\u0119pny 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>Sprawdza, co zastaje serwer wysy\u0142aj\u0105cy poczt\u0119 do domeny: hosty MX, czy oferowane jest STARTTLS i jaka wersja TLS oraz jaki certyfikat wracaj\u0105, czy istniej\u0105 i s\u0105 sp\u00f3jne polityka MTA-STS i adres TLS-RPT oraz czy rekordy DANE pasuj\u0105 do certyfikat\u00f3w.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9284,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[92727,92310,92077],"class_list":["post-15557","page","type-page","status-publish","hentry","tag-email-pl","tag-networking-pl","tag-web-security-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i 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\/pl\/narzedzia\/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=\"Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i STARTTLS - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Sprawdza, co zastaje serwer wysy\u0142aj\u0105cy poczt\u0119 do domeny: hosty MX, czy oferowane jest STARTTLS i jaka wersja TLS oraz jaki certyfikat wracaj\u0105, czy istniej\u0105 i s\u0105 sp\u00f3jne polityka MTA-STS i adres TLS-RPT oraz czy rekordy DANE pasuj\u0105 do certyfikat\u00f3w.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/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\\\/pl\\\/narzedzia\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/\",\"name\":\"Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i STARTTLS - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-09-05T12:01:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/mail-transport-security-checker-mta-sts-tls-rpt-dane\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/narzedzia\\\/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-3\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i 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":"Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i 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\/pl\/narzedzia\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","og_locale":"en_US","og_type":"article","og_title":"Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i STARTTLS - Lukas Wojcik - Blog","og_description":"Sprawdza, co zastaje serwer wysy\u0142aj\u0105cy poczt\u0119 do domeny: hosty MX, czy oferowane jest STARTTLS i jaka wersja TLS oraz jaki certyfikat wracaj\u0105, czy istniej\u0105 i s\u0105 sp\u00f3jne polityka MTA-STS i adres TLS-RPT oraz czy rekordy DANE pasuj\u0105 do certyfikat\u00f3w.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/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\/pl\/narzedzia\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/","name":"Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i STARTTLS - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-09-05T12:01:13+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/mail-transport-security-checker-mta-sts-tls-rpt-dane\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/narzedzia\/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-3\/"},{"@type":"ListItem","position":3,"name":"Sprawdzanie bezpiecze\u0144stwa transportu poczty: MTA-STS, TLS-RPT, DANE i 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\/15557","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=15557"}],"version-history":[{"count":0,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/15557\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9284"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=15557"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=15557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}