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.
| Termin | Działanie |
|---|---|
ip4, ip6 | Dopasowanie adresu lub sieci zapisanych bezpośrednio w rekordzie. |
a | Dopasowanie adresu zwróconego dla wskazanej domeny z użyciem rodziny IP połączenia. |
mx | Dopasowanie adresu serwera pocztowego (mail exchanger) dla wskazanej domeny. |
include | Dopasowanie, gdy wskazana polityka zwraca pass dla tego adresu IP. |
exists | Dopasowanie, 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. |
ptr | Sprawdzenie zwalidowanych nazw reverse-DNS; nie dodawaj go do nowych rekordów, bo wyszukiwanie jest wolne i zawodne. |
all | Dopasowanie 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ńczenie | Wynik |
|---|---|
-all | Fail: domena nie autoryzuje tego adresu IP. |
~all | Softfail: domena uznaje ten adres IP za prawdopodobnie nieautoryzowany. |
?all | Neutral: domena nie składa żadnego oświadczenia. |
+all | Pass 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.
| Rekord | Co autoryzuje |
|---|---|
v=spf1 mx ip4:192.0.2.10 ip4:198.51.100.0/24 ~all | Serwery 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 -all | Rekordy 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 +all | Każdy adres IP, więc nie zapewnia żadnego ograniczenia wysyłki. |
v=spf1 redirect=_spf.example.com | To, co autoryzuje polityka pod _spf.example.com. |
v=spf1 exists:%{i}._spf.example.com ~all | Adresy 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:
| Status | Znaczenie i działanie |
|---|---|
pending | Weryfikacja nie została uruchomiona lub trwa; poczekaj na wynik. |
verified | Rekordy DNS tej funkcji odpowiadają oczekiwanym wartościom. |
warning | Wcześniej zweryfikowane rekordy nie pasują już do oczekiwanych; popraw je przed końcem okresu karencji. Wysyłka nie jest jeszcze dotknięta. |
failed | Wartość DNS jest nieprawidłowa; popraw ją. |
temporary_failure | Wyszukiwanie DNS nie powiodło się tymczasowo; weryfikacja jest automatycznie ponawiana. |
not_configured | Ta 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.