{"id":18575,"date":"2026-10-08T21:56:18","date_gmt":"2026-10-08T19:56:18","guid":{"rendered":"https:\/\/dhosting.pl\/pomoc\/?post_type=manual_kb&#038;p=18575"},"modified":"2026-10-08T21:56:18","modified_gmt":"2026-10-08T19:56:18","slug":"rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji","status":"publish","type":"manual_kb","link":"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/","title":{"rendered":"Rekord SPF: sk\u0142adnia, mechanizmy, limity i przyk\u0142ady konfiguracji"},"content":{"rendered":"<p>Rekord SPF (Sender Policy Framework) to opublikowana w DNS polityka, kt\u00f3ra okre\u015bla, jakie serwery mog\u0105 wysy\u0142a\u0107 poczt\u0119 z u\u017cyciem danej domeny w adresie <code class=\"\" data-line=\"\">envelope-from<\/code>, nazywanym tak\u017ce <code class=\"\" data-line=\"\">Return-Path<\/code>. SPF pomaga oceni\u0107, czy serwer wysy\u0142aj\u0105cy wiadomo\u015b\u0107 jest uprawniony do u\u017cycia tej domeny.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 ez-toc-wrap-left counter-flat ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#Gdzie_publikuje_sie_rekord_SPF\" >Gdzie publikuje si\u0119 rekord SPF<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#Podstawowa_skladnia_rekordu_SPF\" >Podstawowa sk\u0142adnia rekordu SPF<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#Kwalifikatory_i_wynik_dopasowania\" >Kwalifikatory i wynik dopasowania<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#Mechanizmy_SPF\" >Mechanizmy SPF<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#Modyfikatory_SPF\" >Modyfikatory SPF<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#Kolejnosc_oceny_i_limity_DNS\" >Kolejno\u015b\u0107 oceny i limity DNS<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#Przyklady_rekordow_SPF\" >Przyk\u0142ady rekord\u00f3w SPF<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#SPF_DKIM_i_DMARC\" >SPF, DKIM i DMARC<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/rekord-spf-skladnia-mechanizmy-limity-i-przyklady-konfiguracji\/#Lista_kontrolna_poprawnosci\" >Lista kontrolna poprawno\u015bci<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gdzie_publikuje_sie_rekord_SPF\"><\/span>Gdzie publikuje si\u0119 rekord SPF<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">Rekord SPF publikuje si\u0119 w DNS jako rekord typu <code class=\"\" data-line=\"\">TXT<\/code>. Dla jednej domeny i danego zakresu nale\u017cy u\u017cywa\u0107 najwy\u017cej jednego rekordu zaczynaj\u0105cego si\u0119 od <code class=\"\" data-line=\"\">v=spf1<\/code>. Kilka rekord\u00f3w SPF mo\u017ce powodowa\u0107 b\u0142\u0105d oceny polityki. Dawny osobny typ DNS SPF nie jest wsp\u00f3\u0142czesnym zalecanym rozwi\u0105zaniem.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Podstawowa_skladnia_rekordu_SPF\"><\/span>Podstawowa sk\u0142adnia rekordu SPF<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">v=spf1 mechanizm modyfikator mechanizm kwalifikator...<\/code><\/pre>\n<p class=\"wp-block-paragraph\"><code class=\"\" data-line=\"\">v=spf1<\/code> wskazuje wersj\u0119 SPF. Pozosta\u0142e elementy s\u0105 sprawdzane w kolejno\u015bci od lewej do prawej. Rekord mo\u017ce zawiera\u0107 mechanizmy, kwalifikatory i modyfikatory.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kwalifikatory_i_wynik_dopasowania\"><\/span>Kwalifikatory i wynik dopasowania<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>Kwalifikator<\/th>\n<th>Wynik<\/th>\n<th>Znaczenie<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code class=\"\" data-line=\"\">+<\/code><\/td>\n<td>pass<\/td>\n<td>Serwer jest dozwolony. To warto\u015b\u0107 domy\u015blna.<\/td>\n<\/tr>\n<tr>\n<td><code class=\"\" data-line=\"\">-<\/code><\/td>\n<td>fail<\/td>\n<td>Serwer nie jest dozwolony.<\/td>\n<\/tr>\n<tr>\n<td><code class=\"\" data-line=\"\">~<\/code><\/td>\n<td>softfail<\/td>\n<td>Serwer prawdopodobnie nie jest dozwolony, ale wynik jest mniej stanowczy.<\/td>\n<\/tr>\n<tr>\n<td><code class=\"\" data-line=\"\">?<\/code><\/td>\n<td>neutral<\/td>\n<td>Polityka nie wskazuje jednoznacznej oceny.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p class=\"wp-block-paragraph\">Brak kwalifikatora oznacza <code class=\"\" data-line=\"\">+<\/code>. Kwalifikator zmienia wynik tylko wtedy, gdy poprzedzaj\u0105cy go mechanizm dopasuje si\u0119 do sprawdzanego serwera.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Mechanizmy_SPF\"><\/span>Mechanizmy SPF<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">all<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">all<\/code>. Mechanizm dopasowuje ka\u017cdy adres. Zwykle umieszcza si\u0119 go na ko\u0144cu, na przyk\u0142ad <code class=\"\" data-line=\"\">-all<\/code>, aby okre\u015bli\u0107 dzia\u0142anie dla serwer\u00f3w, kt\u00f3re nie pasuj\u0105 do wcze\u015bniejszych element\u00f3w.<\/p>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">ip4<\/code> i <code class=\"\" data-line=\"\">ip6<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">ip4:adres-lub-zakres<\/code> albo <code class=\"\" data-line=\"\">ip6:adres-lub-zakres<\/code>. Elementy wskazuj\u0105 dozwolone adresy IPv4 lub IPv6, na przyk\u0142ad:<\/p>\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">v=spf1 ip4:192.0.2.10 ip6:2001:db8::10 -all<\/code><\/pre>\n<p class=\"wp-block-paragraph\">To w\u0142a\u015bciwy wyb\u00f3r, gdy znasz adresy serwer\u00f3w wysy\u0142aj\u0105cych poczt\u0119. Ryzykiem jest pozostawienie starego adresu po zmianie infrastruktury.<\/p>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">a<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">a<\/code> lub <code class=\"\" data-line=\"\">a:domena<\/code>. Mechanizm dopasowuje adresy z rekord\u00f3w <code class=\"\" data-line=\"\">A<\/code> i <code class=\"\" data-line=\"\">AAAA<\/code> wskazanej domeny. Bez nazwy po dwukropku u\u017cywana jest domena ocenianego rekordu. Mechanizm mo\u017ce by\u0107 przydatny, gdy serwer pocztowy dzia\u0142a pod adresem powi\u0105zanym z domen\u0105, ale zmiana rekord\u00f3w DNS zmienia tak\u017ce wynik SPF.<\/p>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">mx<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">mx<\/code> lub <code class=\"\" data-line=\"\">mx:domena<\/code>. Mechanizm dopasowuje adresy serwer\u00f3w wskazanych przez rekordy <code class=\"\" data-line=\"\">MX<\/code> danej domeny. Nale\u017cy go stosowa\u0107 tylko wtedy, gdy serwery z rekord\u00f3w MX rzeczywi\u015bcie wysy\u0142aj\u0105 poczt\u0119, poniewa\u017c ich adresy s\u0105 uwzgl\u0119dniane podczas sprawdzania.<\/p>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">include<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">include:domena<\/code>. Mechanizm odwo\u0142uje si\u0119 do polityki SPF innej domeny. Dopasowanie <code class=\"\" data-line=\"\">include<\/code> wyst\u0119puje tylko wtedy, gdy zewn\u0119trzna polityka zwr\u00f3ci wynik <code class=\"\" data-line=\"\">pass<\/code>. To praktyczne rozwi\u0105zanie przy korzystaniu z zewn\u0119trznej us\u0142ugi pocztowej, ale ka\u017cde odwo\u0142anie mo\u017ce wymaga\u0107 dodatkowych zapyta\u0144 DNS.<\/p>\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">v=spf1 ip4:192.0.2.10 include:_mail.dhosting.pl -all<\/code><\/pre>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">exists<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">exists:domena<\/code>. Mechanizm dopasowuje si\u0119, gdy wskazana nazwa domenowa zwr\u00f3ci wynik DNS. Jego zastosowanie wymaga \u015bwiadomego przygotowania zale\u017cno\u015bci DNS, a dodatkowe sprawdzenie mo\u017ce zwi\u0119kszy\u0107 liczb\u0119 zapyta\u0144.<\/p>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">ptr<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">ptr<\/code> lub <code class=\"\" data-line=\"\">ptr:domena<\/code>. Jest to mechanizm historyczny i niezalecany. Mo\u017ce powodowa\u0107 problemy z wydajno\u015bci\u0105 i wiarygodno\u015bci\u0105 oceny oraz zu\u017cywa\u0107 limity zapyta\u0144 SPF. Przy projektowaniu nowego rekordu u\u017cyj jawnych adres\u00f3w <code class=\"\" data-line=\"\">ip4<\/code> lub <code class=\"\" data-line=\"\">ip6<\/code>, je\u015bli s\u0105 dost\u0119pne.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Modyfikatory_SPF\"><\/span>Modyfikatory SPF<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">redirect<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">redirect=domena<\/code>. Modyfikator przekazuje ocen\u0119 do innej polityki SPF, gdy \u017caden mechanizm w bie\u017c\u0105cym rekordzie nie dopasuje si\u0119. Pozwala wsp\u00f3\u0142dzieli\u0107 polityk\u0119, ale utrudnia analiz\u0119, je\u015bli domena docelowa jest nieoczywista.<\/p>\n<h3 class=\"wp-block-heading\"><code class=\"\" data-line=\"\">exp<\/code><\/h3>\n<p class=\"wp-block-paragraph\">Sk\u0142adnia: <code class=\"\" data-line=\"\">exp=domena<\/code>. Modyfikator wskazuje domen\u0119 z tekstem obja\u015bniaj\u0105cym przy wyniku <code class=\"\" data-line=\"\">fail<\/code>. Ma ograniczone praktyczne zastosowanie i nie zmienia samego faktu, czy serwer zosta\u0142 dozwolony.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kolejnosc_oceny_i_limity_DNS\"><\/span>Kolejno\u015b\u0107 oceny i limity DNS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">Elementy SPF s\u0105 oceniane od lewej do prawej. Pierwszy mechanizm, kt\u00f3ry dopasuje si\u0119 do serwera, ustala wynik zgodnie z kwalifikatorem. Je\u015bli \u017caden mechanizm si\u0119 nie dopasuje, u\u017cywany jest <code class=\"\" data-line=\"\">redirect<\/code>, je\u017celi zosta\u0142 zdefiniowany. W przeciwnym razie ocena ko\u0144czy si\u0119 bez dopasowania.<\/p>\n<p class=\"wp-block-paragraph\">Mechanizmy <code class=\"\" data-line=\"\">a<\/code>, <code class=\"\" data-line=\"\">mx<\/code>, <code class=\"\" data-line=\"\">include<\/code>, <code class=\"\" data-line=\"\">exists<\/code> i <code class=\"\" data-line=\"\">ptr<\/code> mog\u0105 wykonywa\u0107 zapytania DNS. SPF ma limit takich zapyta\u0144, dlatego rozbudowany rekord mo\u017ce przesta\u0107 dzia\u0142a\u0107 poprawnie. Do typowych przyczyn problem\u00f3w nale\u017c\u0105 liczne odwo\u0142ania <code class=\"\" data-line=\"\">include<\/code>, zagnie\u017cd\u017cone polityki oraz u\u017cywanie <code class=\"\" data-line=\"\">a<\/code> lub <code class=\"\" data-line=\"\">mx<\/code> bez potrzeby.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Przyklady_rekordow_SPF\"><\/span>Przyk\u0142ady rekord\u00f3w SPF<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">v=spf1 ip4:192.0.2.10 -all<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Ten rekord zezwala na wysy\u0142k\u0119 z adresu <code class=\"\" data-line=\"\">192.0.2.10<\/code>. Pozosta\u0142e adresy otrzymuj\u0105 wynik <code class=\"\" data-line=\"\">fail<\/code>.<\/p>\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">v=spf1 a mx include:_mail.dhosting.pl ~all<\/code><\/pre>\n<p class=\"wp-block-paragraph\">Ten zapis dopuszcza adresy domeny, adresy serwer\u00f3w MX oraz serwery wskazane przez zewn\u0119trzn\u0105 polityk\u0119. Pozosta\u0142e adresy otrzymuj\u0105 wynik <code class=\"\" data-line=\"\">softfail<\/code>.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"SPF_DKIM_i_DMARC\"><\/span>SPF, DKIM i DMARC<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">SPF sprawdza uprawnienie serwera do wysy\u0142ki na podstawie domeny envelope-from lub Return-Path. DKIM wykorzystuje podpis wiadomo\u015bci, a DMARC okre\u015bla zasady post\u0119powania z wiadomo\u015bciami oraz wi\u0105\u017ce kontrol\u0119 domeny z widocznym polem <code class=\"\" data-line=\"\">From:<\/code>. SPF samodzielnie nie weryfikuje bezpo\u015brednio tego pola i nie gwarantuje dostarczenia wiadomo\u015bci.<\/p>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Lista_kontrolna_poprawnosci\"><\/span>Lista kontrolna poprawno\u015bci<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul class=\"wp-block-list\">\n<li>Rekord jest typu <code class=\"\" data-line=\"\">TXT<\/code> i zaczyna si\u0119 od <code class=\"\" data-line=\"\">v=spf1<\/code>.<\/li>\n<li>Domena ma najwy\u017cej jeden rekord SPF.<\/li>\n<li>Ka\u017cdy u\u017cywany nadawca ma odpowiedni mechanizm.<\/li>\n<li>Regu\u0142a <code class=\"\" data-line=\"\">all<\/code> znajduje si\u0119 na ko\u0144cu.<\/li>\n<li>Nie u\u017cywasz mechanizmu <code class=\"\" data-line=\"\">ptr<\/code> w nowym rekordzie.<\/li>\n<li>Liczba odwo\u0142a\u0144 DNS, szczeg\u00f3lnie przez <code class=\"\" data-line=\"\">include<\/code>, nie jest niepotrzebnie rozbudowana.<\/li>\n<\/ul>\n","protected":false},"author":6,"featured_media":10957,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[90,118,3801],"manual_kb_tag":[2717,8203,362,983,1510,134,182],"class_list":["post-18575","manual_kb","type-manual_kb","status-publish","format-standard","has-post-thumbnail","hentry","manualknowledgebasecat-domeny-i-dns","manualknowledgebasecat-pozostale","manualknowledgebasecat-serwery","manual_kb_tag-dmarc","manual_kb_tag-rekord-txt","manual_kb_tag-spf","manual_kb_tag-dns","manual_kb_tag-dkim","manual_kb_tag-poczta","manual_kb_tag-e-mail"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/18575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":3,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/18575\/revisions"}],"predecessor-version":[{"id":18576,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/18575\/revisions\/18576"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/10957"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=18575"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manualknowledgebasecat?post=18575"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb_tag?post=18575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}