SPF (Sender Policy Framework) to rekord DNS TXT, który mówi serwerom odbiorczym: „maile z mojej domeny mogą wysyłać TYLKO te serwery – reszta to prawdopodobnie spam/spoofing„. Bez SPF: ktokolwiek może wysłać maila „z Twojej domeny” i serwer odbiorcy nie ma jak zweryfikować, czy to prawda. Efekt: Twoje legalne maile lądują w spamie (bo Gmail/Outlook nie ufa nadawcy bez SPF), a spamerzy wysyłają phishing „z Twojego adresu” bezkarnie.
Spis treści
ToggleJak działa SPF – mechanizm
Gdy serwer odbiorczy (np. Gmail) dostaje maila „od: kontakt@twojafirma.pl” → sprawdza rekord SPF domeny twojafirma.pl → porównuje IP serwera, który wysłał maila, z listą dozwolonych IP w SPF → jeśli pasuje: mail przechodzi (SPF pass). Jeśli nie pasuje: mail jest odrzucony lub trafia do spamu (SPF fail).
1. Mail od: kontakt@twojafirma.pl wysłany z IP 185.100.50.25
2. Gmail pyta DNS: "jaki SPF ma twojafirma.pl?"
3. DNS odpowiada: v=spf1 include:_spf.google.com ip4:185.100.50.0/24 ~all
4. Gmail sprawdza: czy 185.100.50.25 pasuje do ip4:185.100.50.0/24? → TAK → SPF PASS
5. Mail dostarczony do inboxu (nie do spamu)
Jak wygląda rekord SPF
SPF to rekord TXT w DNS domeny. Przykład:
v=spf1 include:_spf.google.com include:sendgrid.net ip4:185.100.50.0/24 ~all
Rozkładamy na czynniki:
| Element | Co oznacza |
|---|---|
v=spf1 |
Wersja SPF (zawsze spf1) |
include:_spf.google.com |
Pozwól serwerom Google (Gmail, Google Workspace) wysyłać maile z tej domeny |
include:sendgrid.net |
Pozwól serwerom SendGrid (email marketing) wysyłać |
ip4:185.100.50.0/24 |
Pozwól konkretnemu zakresowi IP (np. serwer hostingu) |
~all |
Wszystkie inne serwery: soft fail (prawdopodobnie spam, ale nie odrzucaj) |
Mechanizmy SPF
| Mechanizm | Co robi | Przykład |
|---|---|---|
include: |
Dołącz SPF innej domeny (delegacja) | include:_spf.google.com (Google Workspace) |
ip4: |
Pozwól konkretnemu IPv4 | ip4:185.100.50.25 (jeden serwer) |
ip6: |
Pozwól konkretnemu IPv6 | ip6:2001:db8::1 |
a |
Pozwól IP z rekordów A domeny | a (IP serwera WWW = wysyłanie OK) |
mx |
Pozwól serwerom z rekordów MX | mx (serwer poczty = wysyłanie OK) |
all |
Wszystkie inne (z kwalifikatorem) | ~all, -all, ?all |
Kwalifikatory (co robić z resztą)
| Kwalifikator | Znaczenie | Rekomendacja |
|---|---|---|
-all (hard fail) |
Odrzuć maile z niezautoryzowanych serwerów | ✅ Najlepszy – gdy pewien że lista jest kompletna |
~all (soft fail) |
Zaznacz jako podejrzane (spam), ale nie odrzucaj | ✅ Bezpieczny domyślny – na start |
?all (neutral) |
Nie wyrażaj opinii (jak brak SPF) | ❌ Bezużyteczne |
+all (pass all) |
Pozwól WSZYSTKIM serwerom wysyłać | ❌ NIGDY – to jak brak SPF |
Zacznij od ~all (soft fail) – maile z niezautoryzowanych serwerów trafiają do spamu, ale nie są odrzucane. Po weryfikacji (2–4 tygodnie, że wszystko działa): zmień na -all (hard fail) – pełna ochrona.
Jak skonfigurować SPF – krok po kroku
Krok 1 – zidentyfikuj serwery wysyłające maile z Twojej domeny
Zanim napiszesz rekord, odpowiedz: jakie serwery wysyłają maile „z @twojadomena.pl”?
| Usługa | Co dodać do SPF |
|---|---|
| Hosting (poczta) | include:_spf.hostingprovider.pl lub ip4:IP_SERWERA (pytaj support hostingu) |
| Google Workspace (Gmail firmowy) | include:_spf.google.com |
| Microsoft 365 | include:spf.protection.outlook.com |
| SendGrid | include:sendgrid.net |
| Mailgun | include:mailgun.org |
| Brevo (Sendinblue) | include:sendinblue.com |
| MailChimp | include:servers.mcsv.net |
| Zoho Mail | include:zoho.eu |
Często zapominane: WordPress (WP Mail SMTP) – jeśli wysyłasz maile z WordPress przez SendGrid/Mailgun/SMTP hostingu: dodaj odpowiedni include. Systemy fakturowania (iFirma, wFirma, InFakt) – jeśli wysyłają faktury „z Twojej domeny”: dodaj ich SPF. CRM (HubSpot, Pipedrive) – jeśli wysyłają maile w Twoim imieniu: dodaj.
Krok 2 – złóż rekord SPF
Łączysz wszystkie źródła w jeden rekord TXT:
v=spf1 include:_spf.google.com include:sendgrid.net mx ~all
Czytamy: „maile z twojadomena.pl mogą wysyłać: serwery Google, serwery SendGrid i serwery z rekordów MX domeny. Reszta: soft fail (prawdopodobnie spam)”.
Krok 3 – dodaj rekord TXT w DNS
W panelu DNS domeny (rejestrator lub Cloudflare):
| Pole | Wartość |
|---|---|
| Typ | TXT |
| Nazwa / Host | @ (lub puste – oznacza domenę root) |
| Wartość | v=spf1 include:_spf.google.com include:sendgrid.net mx ~all |
| TTL | 3600 |
WAŻNE: tylko JEDEN rekord SPF per domena. Nie dodawaj dwóch rekordów TXT z „v=spf1″ – to błąd. Jeśli masz kilka źródeł: łącz je w JEDNYM rekordzie (wiele include: w jednej linii).
Krok 4 – sprawdź czy działa
MXToolbox SPF Check: mxtoolbox.com → SuperTool → wpisz domenę → „SPF Record Lookup” → zobaczysz rekord i interpretację (pass/fail).
mail-tester.com: wyślij maila testowego na adres z mail-tester.com → dostajesz ocenę (10/10 = idealnie). SPF pass/fail widoczny w raporcie.
Gmail: wyślij maila na Gmail → otwórz → trzy kropki → „Show original” → szukaj: spf=pass lub spf=fail.
Typowe rekordy SPF – gotowe do skopiowania
# Hosting (poczta na serwerze hostingowym)
v=spf1 mx a ~all
# Google Workspace
v=spf1 include:_spf.google.com ~all
# Microsoft 365
v=spf1 include:spf.protection.outlook.com ~all
# Google Workspace + SendGrid (newsletter)
v=spf1 include:_spf.google.com include:sendgrid.net ~all
# Hosting + Google Workspace + Brevo
v=spf1 mx include:_spf.google.com include:sendinblue.com ~all
# Hosting + Microsoft 365 + Mailgun
v=spf1 mx include:spf.protection.outlook.com include:mailgun.org ~all
SPF + DKIM + DMARC – kompletna ochrona
SPF sam nie wystarczy – to 1/3 trójcy bezpieczeństwa email:
| Mechanizm | Co robi | Masz? |
|---|---|---|
| SPF | Weryfikuje SERWER wysyłający (IP) | Ten artykuł |
| DKIM | Podpis kryptograficzny – weryfikuje integralność maila | Konfiguracja u dostawcy poczty |
| DMARC | Polityka: co robić gdy SPF/DKIM nie przejdą | Rekord DNS _dmarc |
Minimum: SPF + DKIM. Pełna ochrona: SPF + DKIM + DMARC (p=reject). Od 2024: Gmail i Yahoo wymagają SPF + DKIM + DMARC od nadawców masowych.
Najczęstsze błędy SPF
Dwa rekordy SPF. Domena ma dwa TXT z „v=spf1…” – to błąd RFC. Serwer odbiorcy może zignorować oba → SPF fail. Rozwiązanie: złącz w jeden rekord.
Za dużo DNS lookupów. SPF ma limit 10 DNS lookupów (każde include: = 1 lookup, i każde include wewnątrz include też liczy się). Przekroczenie 10 → SPF permerror → fail. Sprawdź: mxtoolbox.com SPF Check → „DNS Lookups: X/10″. Jeśli >10: zastąp include: konkretnym ip4: (nie wymaga lookupu).
Zapomniana usługa. Dodajesz SPF z Google i hostingiem – ale zapominasz o: SendGrid (newsletter), CRM (HubSpot), fakturowaniu (iFirma), WordPress SMTP. Maile z tych usług → SPF fail → spam. Audytuj: kto wysyła maile „z Twojej domeny”?
+all zamiast ~all lub -all. +all = „pozwól każdemu wysyłać z mojej domeny” = jak brak SPF. NIGDY nie używaj. Poprawne: ~all (soft fail, bezpieczny start) lub -all (hard fail, pełna ochrona).
Najczęściej zadawane pytania
Czy SPF jest obowiązkowy?
Formalnie nie. Praktycznie tak – od 2024 Gmail i Yahoo wymagają SPF od nadawców. Bez SPF: Twoje maile lądują w spamie u większości dostawców. SPF to absolutne minimum konfiguracji email.
Czy SPF chroni przed phishingiem?
Częściowo – SPF weryfikuje serwer wysyłający, ale nie weryfikuje adresu „From:” widocznego dla odbiorcy. Spamer może wysłać maila z innego serwera, ale sfałszować pole „From:” na Twój adres. Żeby chronić „From:”: dodaj DMARC z alignment (sprawdza czy domena w „From:” zgadza się z domeną SPF/DKIM).
Jak szybko SPF zacznie działać po dodaniu?
Po propagacji DNS: minuty do godzin (zależy od TTL). SPF jest sprawdzany przy każdym emailu – nie potrzebuje „rozgrzewania” jak reputacja IP. Dodaj rekord → poczekaj na propagację (max 24h) → działa.
Czy SPF wpływa na dostarczalność newslettera?
Tak, bezpośrednio. Newsletter wysyłany przez SendGrid/Mailgun/Brevo z Twojej domeny bez SPF include → SPF fail → Gmail wrzuca do spamu. Dodaj include:sendgrid.net (lub odpowiedni) do SPF → SPF pass → inbox.
Mam hosting i Google Workspace – jaki SPF?
v=spf1 mx include:_spf.google.com ~all – mx pozwala serwerowi hostingu (z rekordów MX), include:_spf.google.com pozwala Google. Jeśli też SendGrid: v=spf1 mx include:_spf.google.com include:sendgrid.net ~all.

