Πώς να Φτιάξεις SPF Record Βήμα-Βήμα
Πλήρης οδηγός για το SPF record: ποια mechanisms να βάλεις (include/mx/ip4), -all vs ~all, έτοιμα παραδείγματα για Google Workspace & Microsoft 365, και πώς αποφεύγεις το όριο 10 DNS lookups.
Τι Είναι το SPF Record (και Γιατί το Χρειάζεσαι)
Το SPF (Sender Policy Framework) είναι μια εγγραφή TXT στο DNS που δηλώνει ποιοι servers επιτρέπεται να στέλνουν email για το domain σου. Όταν ένας παραλήπτης (Gmail, Outlook κ.λπ.) δέχεται μήνυμα από εσένα, ελέγχει αν η IP που το έστειλε υπάρχει στο SPF σου. Αν όχι, το μήνυμα θεωρείται ύποπτο και πάει spam — ή απορρίπτεται. Χωρίς SPF, ο καθένας μπορεί να πλαστογραφήσει (spoof) τη διεύθυνσή σου.
Βήμα 1: Βρες Ποιος Στέλνει Email για Εσένα
Πριν γράψεις οτιδήποτε, κάνε λίστα όλων των πηγών που στέλνουν email με το domain σου. Αν ξεχάσεις μία, τα email της θα μπλοκάρονται. Συνήθεις πηγές:
- Ο mail server του hosting σου (cPanel/Plesk → συνήθως η ίδια IP με το site, ή ένα
mail.example.com) - Google Workspace ή Microsoft 365
- Πάροχοι newsletter / transactional (Mailchimp, SendGrid, Mailgun, Amazon SES)
- CRM, τιμολόγηση, ή plugins (π.χ. WooCommerce μέσω SMTP)
Βήμα 2: Σύνταξη του Record
Ένα SPF record ξεκινά πάντα με v=spf1 και τελειώνει με ένα all mechanism. Στη μέση μπαίνουν τα mechanisms που εξουσιοδοτούν αποστολείς:
| Mechanism | Τι κάνει |
|---|---|
mx | Επιτρέπει τους servers που είναι στα MX records του domain σου |
a | Επιτρέπει την IP της A εγγραφής του domain |
ip4:1.2.3.4 | Επιτρέπει μια συγκεκριμένη IPv4 (ή range ip4:1.2.3.0/24) |
ip6:… | Το ίδιο για IPv6 |
include:_spf.google.com | «Δανείζεται» το SPF ενός παρόχου (Google, Microsoft κ.λπ.) |
-all / ~all | Τι να γίνει με ό,τι ΔΕΝ ταιριάζει (δες Βήμα 3) |
Βήμα 3: Διάλεξε -all ή ~all
Το τελευταίο mechanism ορίζει την πολιτική για κάθε αποστολέα που δεν εξουσιοδοτείται:
-all(hard fail): «Οτιδήποτε άλλο είναι πλαστό — απόρριψέ το.» Η σωστή επιλογή για παραγωγή, αλλά μόνο αφού έχεις σιγουρευτεί ότι όλες οι πηγές είναι μέσα.~all(soft fail): «Μάλλον πλαστό — δέξου το αλλά σημείωσέ το.» Καλό για αρχική δοκιμή, ώστε να μη χαθούν email αν ξέχασες κάποια πηγή.?all(neutral): Δεν εκφράζει άποψη — ουσιαστικά άχρηστο, απόφυγέ το.
Σύσταση: ξεκίνα με ~all, παρακολούθησε για λίγες μέρες, και μόλις επιβεβαιώσεις ότι όλα τα νόμιμα email περνούν, γύρνα σε -all.
Βήμα 4: Πρόσθεσέ το ως TXT Record
Στον DNS πάροχό σου (registrar, Cloudflare, cPanel → Zone Editor) πρόσθεσε μία εγγραφή:
Type: TXT Host: @ (δηλαδή το ίδιο το domain, π.χ. example.com) Value: v=spf1 include:_spf.google.com ~all
TXT εγγραφές που ξεκινούν με v=spf1, το αποτέλεσμα είναι PermError και αποτυγχάνει η επικύρωση. Συγχώνευσέ τα σε ένα: βάλε όλα τα include: στην ίδια γραμμή.
Έτοιμα Παραδείγματα
| Σενάριο | SPF record |
|---|---|
| Google Workspace | v=spf1 include:_spf.google.com ~all |
| Microsoft 365 | v=spf1 include:spf.protection.outlook.com -all |
| Hosting (cPanel/Plesk) μόνο | v=spf1 a mx ~all |
| Google + SendGrid | v=spf1 include:_spf.google.com include:sendgrid.net -all |
Έγραψες το record; Επιβεβαίωσε ότι είναι έγκυρο και ότι όλες οι πηγές περνούν:
→ SPF / DKIM / DMARC CheckerΤο Όριο των 10 DNS Lookups
Το SPF επιτρέπει το πολύ 10 DNS lookups κατά την επικύρωση. Κάθε include:, a, mx και redirect μετράει. Αν τα ξεπεράσεις, το αποτέλεσμα είναι PermError και το SPF θεωρείται αποτυχημένο — ακόμα κι αν η IP είναι σωστή. Πρακτικές για να μείνεις κάτω από το όριο:
- Πέτα
include:για παρόχους που δεν χρησιμοποιείς πια. - Αντικατέστησε ένα βαρύ
include:με σταθερέςip4:/ip6:αν ο πάροχος δίνει σταθερές IP. - Απόφυγε τα
a/mxαν δεν στέλνεις από αυτές τις IP.
Συχνά Λάθη
- Δύο SPF records →
PermError. Πάντα ένα. - Ξεχασμένος αποστολέας (π.χ. το newsletter) → τα email του πάνε spam.
-allπολύ νωρίς, πριν επιβεβαιώσεις όλες τις πηγές → χάνονται νόμιμα μηνύματα.- SPF μόνο, χωρίς DKIM/DMARC → το SPF «σπάει» σε forwarding. Συμπλήρωσέ το με DMARC.
Συχνές Ερωτήσεις
v=spf1 προκαλούν PermError. Αν έχεις πολλούς αποστολείς, βάλε όλα τα include: στην ίδια γραμμή.-all (hard fail) λέει «απόρριψε ό,τι δεν ταιριάζει» — η σωστή τελική επιλογή. ~all (soft fail) λέει «δέξου αλλά σημείωσέ το ως ύποπτο» — ιδανικό για αρχική δοκιμή ώστε να μη χαθούν email.include: ή αντικατέστησέ τα με σταθερές ip4:.include:_spf.google.com στο DNS του domain σου ώστε οι παραλήπτες να εμπιστεύονται τα email σου.