Deliverability

Czym jest SPF i do czego służy rekord SPF?

SPF sprawdza, czy dany adres IP może wysyłać w imieniu domeny z envelope-from lub HELO, a rekord SPF publikuje reguły autoryzacji tej domeny w DNS.

Zanim zmienisz SPF, ustal, jakiej domeny używa Twoja usługa wysyłkowa w adresie envelope-from. Ten adres odbiera zwrotki i może się różnić od adresu From widocznego dla odbiorcy.

Jaką domenę sprawdza SPF?

SPF sprawdza domenę w SMTP MAIL FROM, czyli adresie envelope-from, lub tożsamość HELO serwera. HELO to nazwa hosta, którą serwer wysyłający przedstawia przy otwieraniu konwersacji SMTP.

Odbiorca zna już łączący się adres IP w momencie odebrania MAIL FROM, więc SPF może zadziałać, zanim dotrze treść wiadomości. Gdy nadawca kopertowy jest pusty, jak w przypadku MAIL FROM:<>, SPF używa tożsamości HELO. RFC 7208, standard SPF, zaleca również oddzielne sprawdzanie HELO.

SPF nie sprawdza widocznego adresu From. Wyrównanie DMARC łączy uwierzytelnioną domenę z tym adresem.

Jak wygląda rekord SPF?

Rekord SPF to rekord DNS TXT, którego wartość zaczyna się od v=spf1, po czym następują reguły autoryzacji.

example.com TXT "v=spf1 include:mailprovider.example ~all"

Tutaj include:mailprovider.example autoryzuje adresy IP spełniające politykę SPF danego dostawcy. ~all generuje softfail dla pozostałych adresów IP. Zastąp przykładowego dostawcę polityką publikowaną przez Twoją usługę wysyłkową.

Co oznaczają mechanizmy i modyfikatory?

Mechanizmy testują łączący się adres IP względem warunku. Modyfikator redirect deleguje ewaluację, gdy żaden mechanizm nie pasuje.

TerminDziałanie
ip4, ip6Dopasowanie adresu lub sieci zapisanych bezpośrednio w rekordzie.
aDopasowanie adresu zwróconego dla wskazanej domeny z użyciem rodziny IP połączenia.
mxDopasowanie adresu serwera pocztowego (mail exchanger) dla wskazanej domeny.
includeDopasowanie, gdy wskazana polityka zwraca pass dla tego adresu IP.
existsDopasowanie, gdy podana nazwa DNS ma rekord A; makra mogą skonstruować tę nazwę na podstawie połączenia.
redirect=Ewaluacja polityki innej domeny, gdy żaden mechanizm nie pasuje; mechanizm all czyni go nieskutecznym.
ptrSprawdzenie zwalidowanych nazw reverse-DNS; nie dodawaj go do nowych rekordów, bo wyszukiwanie jest wolne i zawodne.
allDopasowanie każdego pozostałego adresu IP; kwalifikator określa wynik.

Mechanizmy adresowe zapisuje się jako ip4 i ip6. Wpis ptr może wystąpić w starszej polityce, ale RFC 7208 odradza jego użycie, jednocześnie wymagając od walidatorów jego obsługi.

Co zmieniają kwalifikatory all?

Kwalifikator ustawia wynik SPF dla adresu IP, który dotrze do all; odbiorca decyduje, jak potraktować wiadomość.

ZakończenieWynik
-allFail: domena nie autoryzuje tego adresu IP.
~allSoftfail: domena uznaje ten adres IP za prawdopodobnie nieautoryzowany.
?allNeutral: domena nie składa żadnego oświadczenia.
+allPass dla każdego adresu IP, co usuwa ograniczenie, które SPF normalnie zapewnia.

Jak ewaluują się przykładowe rekordy?

Każdy poniższy przykład ilustruje osobną politykę. Adresy IP i domeny to przykłady dokumentacyjne, a nie wartości do publikacji dla Twojego nadawcy.

RekordCo autoryzuje
v=spf1 mx ip4:192.0.2.10 ip4:198.51.100.0/24 ~allSerwery pocztowe domeny, jeden adres IP i wskazana sieć; pozostałe IP otrzymują softfail.
v=spf1 a ip4:192.0.2.0/25 ip4:198.51.100.0/26 -allRekordy adresowe domeny i dwie sieci; pozostałe IP otrzymują fail.
v=spf1 -allŻadne IP; każda próba użycia tej domeny kończy się niepowodzeniem SPF.
v=spf1 +allKażdy adres IP, więc nie zapewnia żadnego ograniczenia wysyłki.
v=spf1 redirect=_spf.example.comTo, co autoryzuje polityka pod _spf.example.com.
v=spf1 exists:%{i}._spf.example.com ~allAdresy IP, których rozwinięta nazwa wyszukiwania zwraca rekord A; pozostałe IP otrzymują softfail.

W przykładzie exists połączenie z 192.0.2.10 daje nazwę wyszukiwania 192.0.2.10._spf.example.com. Musisz zarządzać rekordami DNS, które sprawiają, że taka polityka działa; sam wzorzec nie autoryzuje dostawcy.

Ile wyszukiwań DNS może użyć SPF?

SPF dopuszcza dziesięć ewaluowanych terminów odpytujących DNS w obrębie polityki i zagnieżdżonych ewaluacji. Jedenasty generuje permerror, więc dodanie kolejnego dostawcy może przerwać ewaluację zamiast autoryzować.

Liczone terminy to include, a, mx, ptr, exists i redirect. Literalne terminy ip4, ip6 i all nie zużywają tego limitu. Liczone są terminy, a nie każdy pakiet DNS. Return-path CNAME zapewnia autoryzację SPF dla Bird bez dodawania include na domenie apex.

Dlaczego przekazana poczta może nie przejść SPF?

Forwarder lub lista mailingowa może ponownie wysłać prawidłową wiadomość z adresu IP, którego oryginalna domena envelope-from nie autoryzuje. Na przykład skrzynka absolwencka przekazująca pocztę do osobistej skrzynki zmienia serwer łączący się widziany przez końcowego odbiorcę.

Jeśli adres envelope-from pozostaje niezmieniony, SPF ewaluuje ten nowy serwer względem polityki oryginalnej domeny. Forwarder może przepisać adres envelope-from za pomocą Sender Rewriting Scheme (SRS), aby uwierzytelnić własną domenę. To samo w sobie nie wyrównuje SPF z oryginalnym widocznym adresem From.

Nienaruszony, wyrównany podpis DKIM może nadal zapewnić pass DMARC. Uwierzytelnienie nie ustala, że wiadomość jest pożądana, ani nie gwarantuje dostarczenia do skrzynki odbiorczej.

Co opublikować dla Bird?

Publikujesz return-path CNAME dostarczony dla Twojej domeny wysyłkowej. Wskazuje on na infrastrukturę zwrotek Bird, która już zapewnia autoryzację SPF. Nie potrzebujesz dodatkowego include SPF w domenie apex, aby wysyłać przez Bird.

Zachowaj istniejący rekord SPF na domenie apex dla innych nadawców bez zmian. Skopiuj dns_records domeny. Zweryfikuj capabilities.return_path.status; sprawdź capabilities.sending.status pod kątem gotowości we wszystkich wymaganiach wysyłkowych. Oba pola statusu przyjmują te wartości:

StatusZnaczenie i działanie
pendingWeryfikacja nie została uruchomiona lub trwa; poczekaj na wynik.
verifiedRekordy DNS tej funkcji odpowiadają oczekiwanym wartościom.
warningWcześniej zweryfikowane rekordy nie pasują już do oczekiwanych; popraw je przed końcem okresu karencji. Wysyłka nie jest jeszcze dotknięta.
failedWartość DNS jest nieprawidłowa; popraw ją.
temporary_failureWyszukiwanie DNS nie powiodło się tymczasowo; weryfikacja jest automatycznie ponawiana.
not_configuredTa funkcja nie jest skonfigurowana dla tej domeny.

Zweryfikuj DKIM, return-path i DMARC przed wysyłką. Możesz zmienić nazwę hosta return-path. Jeśli wartość DNS TXT wymaga wielu ciągów w cudzysłowach, DNS record splitter formatuje te ciągi bez zmiany limitu wyszukiwań SPF.

Zastosuj w praktyce.

Kontynuuj z dokumentacją, przewodnikami i przykładami dotyczącymi tego tematu. Zasoby są w języku angielskim.

Uzyskaj brief wdrożeniowy

Buduj na tej samej sieci.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i zweryfikowaniu nadawcy.

Zacznij od jednego kanału.
Dodaj kolejne, gdy będziesz gotowy.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i weryfikacji nadawcy.

Używasz Claude Code, Cursor lub Codex? Skopiuj prompt konfiguracyjny, a Twój agent zainstaluje za Ciebie Bird CLI i umiejętności. Wybierz swój:

Cursor