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ęści include: i jedno all na 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, exists i redirect, 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 wybieraj ip4:.

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

  1. Otwórz Email → Email Deliverability.
  2. Znajdź domenę. Jeśli SPF pokazuje problem, kliknij Manage.
  3. 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

  1. Otwórz domenę i przejdź do DNS → Records.
  2. Filtruj po TXT i szukaj wartości zaczynających się od v=spf1.
  3. Jeśli go nie ma, Add record: typ TXT, nazwa @, zawartość np. v=spf1 include:_spf.google.com ~all, TTL Auto, Save.
  4. 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.