Dokumentacja
Napraw SPF
Napraw SPF
SPF to jeden rekord TXT w Twojej domenie, który wymienia serwery uprawnione do wysyłania poczty jako @example.com. Bez niego każdy może wpisać Twoją domenę w polu From, a serwery odbiorców nie odróżnią Twojej faktury od podrobionej kopii do phishingu. Gmail, Yahoo i Outlook.com coraz częściej wrzucają pocztę bez poprawnego SPF lub DKIM do spamu, więc brak rekordu to nie tylko kwestia bezpieczeństwa: kosztuje Cię odpowiedzi i zamówienia.
Lista kontrolna strony oznacza tę pozycję jako błąd w trzech przypadkach: brak rekordu SPF, dwa rekordy SPF albo rekord kończący się na +all.
Jak wygląda poprawny rekord
Domena ma dokładnie jeden rekord TXT zaczynający się od v=spf1. Wymienia każdą usługę, która wysyła pocztę w Twoim imieniu, i kończy się regułą dla wszystkich pozostałych:
| Typ | Nazwa | Wartość | TTL |
|---|---|---|---|
| TXT | @ (example.com) |
v=spf1 include:_spf.google.com ~all |
3600 |
| Część | Znaczenie |
|---|---|
v=spf1 |
to jest rekord SPF; musi być na początku |
include:_spf.google.com |
zezwól na serwery, które wymienia ta usługa (tu Google Workspace) |
ip4:192.0.2.10, a, mx |
zezwól na jeden adres, rekord A domeny lub jej serwery pocztowe |
~all |
wszystko inne jest podejrzane (soft fail): typowe, bezpieczne zakończenie |
-all |
wszystko inne jest odrzucane (hard fail): użyj, gdy masz pewność, że lista jest pełna |
+all |
wszystko inne jest dozwolone: to samo co brak SPF, a nawet gorzej, bo wygląda na skonfigurowane |
+a i +mx są w porządku: + to tylko domyślny kwalifikator. Problemem jest wyłącznie +all.
Trzy błędy i co oznaczają:
- Brak rekordu. Dodaj go z usługami, przez które faktycznie wysyłasz pocztę (patrz niżej).
- Dwa rekordy. Dzieje się tak, gdy kolejna usługa prosi o „dodanie rekordu SPF”, a Ty dodajesz go obok starego. Standard nakazuje wtedy odbiorcom traktować SPF jako zepsuty, więc ignorowane są oba. Połącz je w jeden: jedno
v=spf1, wszystkie częściinclude:i jednoallna końcu. +all. Zamień je na~all.
Popularne wartości include
| Wysyłasz pocztę przez | Dodaj |
|---|---|
| Google Workspace (Gmail) | include:_spf.google.com |
| Microsoft 365 (Outlook) | include:spf.protection.outlook.com |
| Twój hosting (cPanel, Plesk, DirectAdmin) | a mx lub ip4: z adresem serwera, zgodnie z sugestią panelu |
| SendGrid | include:sendgrid.net |
| Brevo | include:spf.brevo.com |
| Mailchimp, CRM, system zgłoszeń, platforma sklepu | wartość ze strony DNS lub uwierzytelniania domeny w tej usłudze |
Nie zapomnij o samej stronie: formularze kontaktowe i maile z zamówieniami WooCommerce często wychodzą z serwera WWW, a nie od dostawcy Twoich skrzynek.
Połączenie Google Workspace, hostingu i SendGrid daje:
v=spf1 include:_spf.google.com include:sendgrid.net a mx ~all
Ostrzeżenie: SPF pozwala na najwyżej 10 zapytań DNS. Liczy się każde
include,a,mx,existsiredirect, a także includy wewnątrz każdego include. Powyżej 10 cały rekord zawodzi (permerror) u każdego odbiorcy. Zanim dodasz nową usługę, usuń te, których już nie używasz, a dla własnych serwerów ze stałym adresem wybierajip4:.
Domena, która nie wysyła poczty
Domena, która hostuje tylko stronę (albo domena zaparkowana), powinna to zadeklarować, żeby nikt nie mógł jej użyć do phishingu:
| Typ | Nazwa | Wartość | TTL |
|---|---|---|---|
| TXT | @ |
v=spf1 -all |
3600 |
Jeśli domena nie ma rekordów MX ani SPF, lista kontrolna oznacza SPF jako nie dotyczy, ale ten rekord i tak chroni nazwę.
Sprawdź sam
Zamiast example.com wpisz swoją domenę:
dig +short TXT example.com | grep -i 'v=spf1'
W systemie Windows:
nslookup -type=TXT example.com
Naprawione oznacza dokładnie jedną linię zaczynającą się od "v=spf1 i kończącą na ~all lub -all. Dwie linie z v=spf1 to dwa rekordy.
Jak to naprawić
SPF jest w DNS, więc zmieniasz go tam, gdzie hostowany jest DNS domeny, a to nie zawsze to samo miejsce co poczta czy strona. Jeśli nie masz pewności, dig +short NS example.com pokaże serwery nazw: *.ns.cloudflare.com oznacza Cloudflare, nazwa firmy hostingowej oznacza Twój panel hostingu, w innym przypadku zwykle rejestratora.
Google Workspace
Google Workspace nie edytuje Twojego DNS. Dodaj lub zmień rekord TXT u dostawcy DNS (patrz jego zakładka):
| Typ | Nazwa | Wartość | TTL |
|---|---|---|---|
| TXT | @ |
v=spf1 include:_spf.google.com ~all |
3600 |
Jeśli inna usługa ma już rekord SPF, nie dodawaj drugiego: wstaw include:_spf.google.com do istniejącego rekordu, przed część all.
W Google Admin console ścieżka Apps → Google Workspace → Gmail → Authenticate email służy do DKIM, nie SPF. Skonfiguruj tam też DKIM: patrz Skonfiguruj DKIM.
Microsoft 365
Microsoft 365 potrzebuje tego rekordu u Twojego dostawcy DNS:
| Typ | Nazwa | Wartość | TTL |
|---|---|---|---|
| TXT | @ |
v=spf1 include:spf.protection.outlook.com -all |
3600 |
Microsoft zaleca -all; ~all jest w porządku, dopóki sprawdzasz, jakie inne usługi wysyłają pocztę w Twoim imieniu. Jeśli domeną zarządza Microsoft (skonfigurowałeś ją w Microsoft 365 admin center w Settings → Domains i oddałeś DNS Microsoftowi), rekord już tam jest; otwórz tam domenę i sprawdź DNS records.
Jeśli wysyłasz też przez hosting lub narzędzie do newsletterów, połącz ich części w ten jeden rekord.
cPanel
- Otwórz Email → Email Deliverability.
- Znajdź domenę. Jeśli SPF pokazuje problem, kliknij Manage.
- cPanel pokazuje proponowany rekord, zbudowany z adresu Twojego serwera. Jeśli cała poczta wychodzi przez ten serwer, kliknij Install the Suggested Record.
Proponowany rekord zna tylko ten serwer. Jeśli wysyłasz też przez Google Workspace, Microsoft 365 lub usługę newsletterową, edytuj rekord ręcznie (niżej) i zachowaj ich części include:.
Jeśli DNS domeny jest hostowany gdzie indziej (Cloudflare, rejestrator), cPanel go nie zmieni: skopiuj proponowaną wartość i dodaj ją u dostawcy DNS.
Ręczna edycja: Domains → Zone Editor → Manage przy domenie, filtruj po TXT i edytuj linię zaczynającą się od v=spf1. Jeśli są dwie, połącz je w jedną, a drugą usuń.
Plesk
Plesk tworzy SPF ze swojego szablonu DNS, zwykle v=spf1 +a +mx +a:server.example.net -all. Ten rekord jest w porządku, dopóki cała poczta wychodzi przez serwer Plesk.
Zmiana: Websites & Domains → example.com → Hosting & DNS → DNS (w starszych wersjach DNS Settings). Znajdź rekord TXT dla example.com. zaczynający się od v=spf1, kliknij go, zmień wartość i kliknij OK, a potem Update, jeśli Plesk prosi o zastosowanie zmian.
Jeśli wysyłasz też przez Google Workspace lub Microsoft 365, dodaj do tego rekordu ich część include:. Nie dodawaj drugiego rekordu TXT z v=spf1.
Jeśli domena korzysta z zewnętrznego DNS (Cloudflare, rejestrator), DNS w Plesku nie jest tym, który widzi świat: edytuj rekord tam.
DirectAdmin
Account Manager → DNS Management, wybierz domenę. DirectAdmin zwykle tworzy rekord w rodzaju v=spf1 a mx ip4:203.0.113.10 ~all.
Edytuj ten rekord TXT, dodaj części include: innych usług, które wysyłają w Twoim imieniu, i zapisz. Jeśli są dwa rekordy v=spf1, połącz je i jeden usuń.
Jeśli brakuje DNS Management, DNS-em zarządza za Ciebie hosting: wyślij mu rekord, którego potrzebujesz.
Cloudflare
- Otwórz domenę i przejdź do DNS → Records.
- Filtruj po TXT i szukaj wartości zaczynających się od
v=spf1. - Jeśli go nie ma, Add record: typ TXT, nazwa
@, zawartość np.v=spf1 include:_spf.google.com ~all, TTL Auto, Save. - Jeśli są dwa, zmień jeden tak, by zawierał wszystkie części, a drugi usuń.
Jeśli korzystasz z Cloudflare Email Routing, dodaje on include:_spf.mx.cloudflare.net. Równoczesne wysyłanie przez Gmaila lub inną usługę to częste źródło dwóch rekordów SPF: połącz je w jeden.
Rekordy TXT nigdy nie są proxowane, więc pomarańczowa chmurka nie ma tu znaczenia.
Dostawca DNS
U rejestratora lub dostawcy DNS otwórz strefę DNS domeny i dodaj lub edytuj jeden rekord TXT:
| Typ | Nazwa / Host | Wartość | TTL |
|---|---|---|---|
| TXT | @ (albo puste, albo example.com.) |
v=spf1 include:_spf.google.com ~all |
3600 |
Sposób zapisu nazwy różni się między dostawcami: jedni chcą @, inni zostawiają pole puste, jeszcze inni pokazują pełną nazwę. Jeśli wpiszesz example.com, a dostawca sam dopisze domenę, powstanie example.com.example.com. Sprawdź potem przez dig.
Niektórzy dostawcy sami otaczają wartość cudzysłowami, inni oczekują, że wpiszesz je sam. Tak czy inaczej dig powinien pokazać ją raz, w jednej parze cudzysłowów.
Ile to trwa
Zmieniony rekord TXT jest widoczny, gdy stary wygaśnie z pamięci podręcznych, zwykle w czasie TTL (często godzina, czasem do doby). Poczta wysłana w międzyczasie jest sprawdzana według wersji, którą odbiorca ma w pamięci podręcznej.
Potwierdź poprawkę
Uruchom ponownie polecenie dig z sekcji Sprawdź sam, potem otwórz cel w PulseKeeper i kliknij Sprawdź teraz na zakładce Lista kontrolna. Pozycja zmieni się na OK w ciągu kilku minut, a nie dopiero przy kolejnym codziennym sprawdzeniu.
Sam SPF nie powstrzyma podrabiania Twojego adresu From. Kolejne kroki to DKIM i DMARC.