
SPF là lớp xác thực email đầu tiên cần thiết lập. Nó cho máy chủ nhận biết những máy chủ và dịch vụ nào được phép gửi email thay mặt tên miền của bạn. Cấu hình SPF đúng giúp email vào inbox và là nền tảng để DMARC hoạt động.
SPF là gì
SPF là viết tắt của Sender Policy Framework. Đây là một bản ghi TXT đặt trên tên miền, liệt kê các nguồn gửi hợp lệ. Khi nhận email, máy chủ đích lấy địa chỉ IP gửi và so với danh sách trong bản ghi SPF. Nếu IP nằm trong danh sách, email vượt qua kiểm tra. SPF là một trong ba lớp được mô tả ở bài xác thực email SPF, DKIM, DMARC toàn tập.
Vì sao SPF quan trọng
Khi không có SPF, bất kỳ máy chủ nào trên Internet cũng có thể gửi email ghi tên miền của bạn ở phần người gửi, và máy chủ nhận không có cơ sở để nghi ngờ. Đây là cánh cửa cho thư rác và thư mạo danh. SPF đóng cửa đó lại bằng cách công bố công khai những nguồn gửi hợp lệ.
Ngoài việc chống mạo danh, SPF còn là dữ liệu đầu vào cho DMARC. Một email muốn vượt DMARC cần đạt SPF căn khớp hoặc DKIM căn khớp. Vì vậy thiếu SPF không chỉ làm email dễ vào spam mà còn khiến lớp bảo vệ DMARC khó phát huy. Đây là bước nền cần làm sớm khi thiết lập email theo tên miền.
Cú pháp bản ghi SPF
Một bản ghi SPF luôn bắt đầu bằng v=spf1 và kết thúc bằng một quy tắc all. Giữa hai phần là các cơ chế khai báo nguồn gửi. Bảng dưới liệt kê các thành phần hay dùng:
| Thành phần | Ý nghĩa |
|---|---|
include:domain |
Ủy quyền cho nguồn gửi của một dịch vụ khác |
ip4 / ip6 |
Cho phép một địa chỉ IP hoặc dải IP cụ thể |
a / mx |
Cho phép máy chủ theo bản ghi A hoặc MX của tên miền |
~all |
Softfail: đánh dấu nghi ngờ phần còn lại |
-all |
Hardfail: từ chối thẳng phần còn lại |
Ví dụ bản ghi SPF
Một bản ghi cho tên miền dùng email theo tên miền riêng và một công cụ gửi thông báo:
v=spf1 include:_spf.mailpro.vn ip4:203.0.113.10 ~all
Nếu chắc chắn đã liệt kê đủ mọi nguồn gửi, bạn có thể dùng -all để siết chặt hơn. Khi còn nguồn chưa chắc chắn, hãy giữ ~all để tránh chặn nhầm.
Phân biệt các quy tắc kết thúc all
Phần all ở cuối bản ghi quyết định cách xử lý nguồn gửi không nằm trong danh sách. Có ba lựa chọn thường gặp:
-allhardfail: từ chối thẳng mọi nguồn ngoài danh sách. Mức chặt, dùng khi đã liệt kê đủ.~allsoftfail: đánh dấu nghi ngờ nhưng vẫn nhận. Mức an toàn khi còn nguồn chưa rà hết.?allneutral: không đưa ra phán quyết. Ít tác dụng bảo vệ nên hiếm khi khuyến nghị.
Phần lớn doanh nghiệp nên bắt đầu với ~all trong giai đoạn đầu, kết hợp DMARC ở mức giám sát để theo dõi. Khi chắc chắn đã khai báo đủ nguồn gửi, có thể chuyển sang -all để siết chặt hơn.
Giới hạn 10 lượt tra cứu DNS
SPF có một giới hạn quan trọng: tổng số lượt tra cứu DNS phát sinh từ các cơ chế như include, a, mx không được vượt quá 10. Vượt giới hạn này sẽ gây lỗi permerror và kết quả SPF bị bỏ qua. Khi dùng nhiều dịch vụ, hãy gộp khéo và loại bỏ các include không còn dùng để giữ số lượt tra cứu thấp.

Mỗi tên miền chỉ một bản ghi SPF
Một tên miền chỉ được phép có một bản ghi SPF. Nếu tồn tại hai bản ghi trở lên, SPF mất hiệu lực hoàn toàn. Khi thêm dịch vụ gửi mới, hãy chèn cơ chế vào bản ghi sẵn có thay vì tạo bản ghi thứ hai.
Cách kiểm tra SPF
Sau khi cập nhật, bạn có thể kiểm tra:
- Tra bản ghi TXT của tên miền để xác nhận chỉ có một dòng
v=spf1. - Gửi email thử tới Gmail, mở phần hiển thị nội dung gốc và xem dòng SPF có ở trạng thái PASS.
- Dùng công cụ kiểm tra SPF để đếm số lượt tra cứu DNS và phát hiện include thừa.
Nếu email vẫn vào spam sau khi SPF đã PASS, hãy soát thêm DKIM, DMARC và danh tiếng IP trong bài tên miền và IP bị blacklist.
SPF phối hợp với DKIM và DMARC
SPF hiếm khi đứng một mình. Trong thực tế, ba lớp xác thực bổ trợ nhau để cùng đạt hiệu quả cao. SPF khai báo nguồn gửi hợp lệ, DKIM ký số đảm bảo nội dung toàn vẹn, còn DMARC dựa trên kết quả của hai lớp này để áp chính sách và gửi báo cáo.
Một điểm quan trọng là DMARC yêu cầu căn khớp, nghĩa là tên miền vượt SPF phải trùng với tên miền hiển thị ở dòng From. Vì vậy chỉ có SPF PASS chưa chắc đã đủ để vượt DMARC nếu căn khớp không đạt. Đây là lý do nên triển khai cả ba lớp cùng nhau thay vì chỉ dừng ở SPF. Cách thiết lập từng lớp được trình bày trong bài DMARC là gì và cách thiết lập và bài tổng quan xác thực email toàn tập.
Lỗi thường gặp với SPF
- Tạo hai bản ghi SPF, làm cả hai cùng mất hiệu lực.
- Vượt 10 lượt tra cứu DNS do gộp quá nhiều include.
- Quên thêm nguồn gửi mới vào bản ghi, khiến thư từ nguồn đó trượt SPF.
- Dùng
-allquá sớm khi chưa liệt kê đủ nguồn, chặn nhầm thư hợp lệ.
SPF cho tên miền không gửi email
Một điểm hay bị bỏ sót là các tên miền hoặc tên miền con không dùng để gửi email vẫn nên có SPF. Nếu để trống, kẻ xấu có thể lợi dụng chính những tên miền này để mạo danh. Với tên miền không gửi thư, hãy công bố một bản ghi từ chối hoàn toàn:
v=spf1 -all
Bản ghi này nói rõ không có máy chủ nào được phép gửi email thay mặt tên miền, giúp khóa hẳn khả năng bị mạo danh. Cách làm tương tự nên áp cho các tên miền phụ chỉ dùng cho website mà không gửi thư.
MailPRO cấu hình SPF sẵn
Email doanh nghiệp theo tên miền riêng của MailPRO cung cấp sẵn cơ chế include để bạn gắn vào bản ghi SPF, kèm hướng dẫn trỏ DNS. Cách này giúp doanh nghiệp khai báo nguồn gửi chuẩn mà không lo vượt giới hạn tra cứu. Đội kỹ thuật cũng hỗ trợ kiểm tra bản ghi sau khi cập nhật để chắc rằng SPF đã ở trạng thái PASS trước khi đưa vào dùng chính thức, tránh tình trạng thư vào spam do cấu hình còn sót hoặc thiếu nguồn gửi hợp lệ.
Câu hỏi thường gặp
SPF dùng ~all hay -all thì tốt hơn?
Tùy mức độ chắc chắn. Dùng ~all khi còn nguồn gửi chưa rà hết để tránh chặn nhầm. Dùng -all khi đã liệt kê đầy đủ và muốn siết chặt. Nhiều doanh nghiệp giữ ~all kết hợp DMARC để cân bằng.
Tôi có thể có hai bản ghi SPF cho hai dịch vụ không?
Không. Một tên miền chỉ được một bản ghi SPF. Khi dùng nhiều dịch vụ, hãy thêm các cơ chế include vào cùng một bản ghi duy trì.
Vì sao SPF báo lỗi permerror?
Thường do vượt giới hạn 10 lượt tra cứu DNS hoặc cú pháp sai. Hãy giảm số include, loại bỏ dịch vụ không dùng và kiểm tra lại bằng công cụ soát SPF.
SPF có chống được giả mạo địa chỉ hiển thị không?
SPF kiểm tra máy chủ gửi chứ không trực tiếp bảo vệ địa chỉ hiển thị. Để chống mạo danh dòng From, cần kết hợp DKIM và DMARC.
Tên miền không gửi email có cần SPF không?
Nên có. Với tên miền không dùng để gửi thư, hãy công bố bản ghi v=spf1 -all để từ chối mọi nguồn gửi, tránh bị lợi dụng mạo danh. Cách này áp cho cả các tên miền phụ chỉ dùng cho website.
Bao lâu nên kiểm tra lại bản ghi SPF?
Nên rà soát mỗi khi thêm hoặc bỏ một dịch vụ gửi email, và kiểm tra định kỳ vài tháng một lần. Việc này giúp loại bỏ include không còn dùng, giữ số lượt tra cứu DNS thấp và tránh lỗi do cấu hình cũ.