Trả lời nhanh
Làm sao tạo bản ghi SPF cho tên miền tùy chỉnh?
Tạo một bản ghi TXT ở gốc của tên miền, bắt đầu bằng v=spf1, thêm include của nhà cung cấp thư (với Proton Mail là include:_spf.protonmail.ch) và kết thúc bằng ~all. Một tên miền chỉ được có một bản ghi SPF và SPF cho phép tối đa 10 lần tra cứu DNS. Postelva lưu bản ghi TXT trong trình chỉnh sửa DNS miễn phí của mình.
Giá trị SPF của bốn nhà cung cấp email
| Nhà cung cấp | Include cần thêm | Bản ghi đầy đủ điển hình |
|---|---|---|
| Proton Mail | include:_spf.protonmail.ch | v=spf1 include:_spf.protonmail.ch ~all |
| Mailbox.org | include:mailbox.org | v=spf1 include:mailbox.org ~all |
| Fastmail | include:spf.messagingengine.com | v=spf1 include:spf.messagingengine.com ?all |
| Mailfence | include:_spf.mailfence.com | v=spf1 include:_spf.mailfence.com -all (chỉ Mailfence gửi) hoặc ~all (các nơi gửi khác cũng vậy) |
Kiểm tra lần cuối vào ; các số liệu cũ hơn có ngày riêng
Tạo bản ghi theo năm bước
Liệt kê mọi dịch vụ gửi thư đứng tên tên miền của bạn
Ghi lại nhà cung cấp hộp thư của bạn và mọi công cụ khác gửi thư đứng tên bạn: dịch vụ bản tin, bộ phận hỗ trợ, biểu mẫu liên hệ trên website. Mỗi dịch vụ cần một chỗ trong bản ghi.
Kiểm tra xem bản ghi SPF đã tồn tại chưa
Xem các bản ghi TXT ở gốc (@) của tên miền. Nếu một bản ghi bắt đầu bằng v=spf1, hãy sửa nó. Đừng bao giờ tạo bản ghi thứ hai.
Xây dựng giá trị
Bắt đầu bằng v=spf1, thêm một include: cho mỗi dịch vụ gửi, và kết thúc bằng ~all. Ví dụ chỉ với Proton Mail: v=spf1 include:_spf.protonmail.ch ~all.
Công bố dưới dạng bản ghi TXT
Trong trình chỉnh sửa DNS, thêm một bản ghi TXT với host @ và giá trị ở trên. Giữ nó trên một dòng duy nhất.
Kiểm tra kết quả
Tra cứu bản ghi bằng dig TXT example.com +short và xác nhận đúng một dòng bắt đầu bằng v=spf1. Sau đó gửi một thư thử đến một địa chỉ ở nhà cung cấp khác.
; Proton Mail only
example.com. IN TXT "v=spf1 include:_spf.protonmail.ch ~all"
; Proton Mail plus a second sending service (one record, two includes)
example.com. IN TXT "v=spf1 include:_spf.protonmail.ch include:spf.sender.example ~all"Bản ghi SPF chứa gì?
Bản ghi SPF là một bản ghi TXT bắt đầu bằng v=spf1 và tiếp tục với các cơ chế, mỗi cơ chế có một bộ định tính tùy chọn. RFC 7208 định nghĩa các cơ chế all, include, a, mx, ip4, ip6, exists và ptr, và bổ ngữ redirect. Bộ định tính quyết định kết quả khi một cơ chế khớp: + pass (mặc định), - fail, ~ softfail và ? neutral.
Với một tên miền dùng nhà cung cấp email, một cơ chế làm gần hết công việc: include. Nó bảo người nhận đánh giá bản ghi SPF của tên miền nhà cung cấp và coi một kết quả khớp ở đó là khớp cho tên miền của bạn. Bạn không bao giờ phải sao chép địa chỉ IP bằng tay, nên nhà cung cấp có thể đổi máy chủ mà không động đến DNS của bạn. Nếu bạn gửi từ máy chủ riêng, ip4 và ip6 liệt kê địa chỉ của nó và không tốn lần tra cứu nào.
SPF được công bố dưới dạng bản ghi TXT. Một chuỗi TXT đơn chỉ giới hạn 255 octet, và một bản ghi dài hơn được chia thành nhiều chuỗi mà người nhận nối lại không có khoảng trắng. Hầu hết trình chỉnh sửa DNS tự chia cho bạn.
Vì sao một tên miền chỉ được có một bản ghi SPF?
Nếu hai bản ghi TXT đều bắt đầu bằng v=spf1, người nhận không thể chọn và trả về lỗi vĩnh viễn, nên mọi thư đều thất bại SPF. RFC 7208 nói rằng một tên miền không được có nhiều hơn một bản ghi SPF. Proton, Mailbox.org và Mailfence đều đưa ra cùng lời khuyên: khi bạn thêm một dịch vụ, hãy đưa include của nó vào bản ghi đang có.
Nguyên nhân thường gặp là một lần chuyển đổi. Bạn công bố bản ghi của nhà cung cấp mới và quên bản ghi cũ. Hãy mở danh sách TXT, gộp hai dòng thành một, và xóa phần còn lại. Khi bạn đổi nhà cung cấp hẳn, hãy thay include cũ thay vì thêm vào. Chính việc chuyển được mô tả trong cách chuyển email sang nhà cung cấp mới mà không mất thư.
Giới hạn 10 lần tra cứu trong SPF là gì?
Đánh giá SPF dừng với lỗi vĩnh viễn sau 10 thành phần gây tra cứu DNS, nên một bản ghi cần 11 lần sẽ thất bại với mọi người gửi. Các thành phần được tính là include, a, mx, ptr, exists và bổ ngữ redirect. Các cơ chế all, ip4 và ip6 không được tính. RFC 7208 còn nói rằng các triển khai nên dừng sau hai lần tra cứu rỗng, tức những lần trả về không có gì hoặc một tên miền không tồn tại.
Một include được tính là một lần tra cứu cộng với mọi lần tra cứu bên trong bản ghi được include. Một nhà cung cấp hộp thư thì rẻ, nhưng một chồng gồm máy chủ thư, dịch vụ bản tin, bộ phận hỗ trợ và biểu mẫu website sẽ cộng dồn. Hãy bỏ các dịch vụ bạn không dùng nữa trước. Khi một công cụ công bố địa chỉ IP cố định, các dải ip4 và ip6 không tốn gì. Số lần lồng nhau chính xác của từng nhà cung cấp không do Postelva đo, nên hãy kiểm tra bản ghi cuối cùng bằng một lần tra cứu trước khi dựa vào nó, như trong cách kiểm tra bản ghi MX, SPF, DKIM và DMARC.
Tôi nên kết thúc bản ghi SPF bằng ~all hay -all?
Hãy dùng ~all trừ khi bạn kiểm soát mọi người gửi: nó đánh dấu các máy chủ khác là đáng ngờ mà không yêu cầu người nhận từ chối thư ngay. Bộ định tính của all là phán quyết cho mọi máy chủ không khớp với gì trước đó. -all nghĩa là fail, ~all là softfail, ?all là neutral.
-all chặt hơn, nhưng RFC 9989 cảnh báo nó có thể khiến người nhận từ chối thư trước khi DMARC chạy, điều này che khuất một thư chuyển tiếp mà DKIM lẽ ra đã cứu. Vì vậy bản ghi mà Proton và Mailbox.org hiển thị kết thúc bằng ~all. Theo so sánh của Postelva ngày 12 tháng 11 năm 2026, ba nhà cung cấp có giá trị SPF đầy đủ trên trang trợ giúp (Proton Mail, Mailbox.org, Fastmail) mỗi nhà đều dùng đúng 1 include, nên một bản ghi cho một nhà cung cấp tốn 1 lần tra cứu, và hai trong số đó kết thúc bằng ~all, còn giá trị của Fastmail kết thúc bằng ?all.
Dù kết thúc thế nào, DMARC mới là nơi thực thi. Hãy đặt chính sách ở đó, như giải thích trong hướng dẫn thiết lập DMARC. Ba bản ghi được so sánh trong SPF, DKIM và DMARC.
SPF kiểm tra gì, và không kiểm tra gì?
SPF kiểm tra máy chủ đứng sau địa chỉ người gửi trong envelope và tên HELO, không phải địa chỉ From trong thư mà người đọc thấy. Một thư có thể qua SPF cho một tên miền mà không ai để ý và vẫn hiển thị tên miền của bạn ở dòng From. DMARC đóng khoảng trống này bằng cách đòi hỏi hai địa chỉ phải khớp nhau.
SPF cũng không tồn tại qua chuyển tiếp đơn thuần, vì bên chuyển tiếp gửi từ địa chỉ IP của chính nó. Một quy tắc ngón tay cái có thể trích dẫn: SPF cho phép máy chủ, một bản ghi cho mỗi tên miền, tối đa 10 lần tra cứu. Với một tên miền không gửi gì, hãy công bố v=spf1 -all và mẫu "không có email" của Postelva; với một tên miền vừa gửi vừa nhận, mẫu DNS một cú nhấp cho Proton Mail, Fastmail, Zoho Mail, Google Workspace và Microsoft 365, cùng mẫu SPF + DMARC và mẫu "không email" cho tên miền không gửi thư nào.
Câu hỏi về bản ghi SPF
Tôi đặt bản ghi SPF ở đâu?
Trong một bản ghi TXT ở gốc của tên miền, thường là host @ trong hầu hết trình chỉnh sửa DNS. SPF không có loại bản ghi riêng, và loại SPF cũ không được dùng.
Một thay đổi SPF mất bao lâu để có hiệu lực?
Thay đổi lan truyền trong khoảng TTL cũ của bản ghi, thường trong vòng một hoặc hai giờ. Một bộ phân giải đã lưu đệm một bản ghi bị thiếu có thể tiếp tục trả về kết quả cũ trong thời gian lưu đệm phủ định của vùng.
Tôi có cần bản ghi SPF nếu chỉ nhận email không?
Có, một bản ghi ngắn: công bố v=spf1 -all để nói rằng không có máy chủ nào gửi đứng tên tên miền. Điều này ngăn người khác dùng tên đó trong thư giả mạo.
Tôi có thể thêm biểu mẫu liên hệ trên website vào bản ghi không?
Có, bằng include hoặc địa chỉ IP của nó. Nếu nó gửi qua nhà cung cấp hộp thư của bạn, không cần mục nào thêm. Nếu nó gửi từ máy chủ web của bạn, hãy thêm máy chủ đó làm nguồn gửi.
Cơ chế ptr có hữu ích không?
Không. RFC 7208 đánh dấu ptr là không nên dùng. Nó chậm và được tính vào giới hạn 10 lần tra cứu.
Tóm lại
- SPF là một bản ghi TXT duy nhất ở gốc của tên miền, bắt đầu bằng v=spf1.
- Chỉ công bố một bản ghi SPF cho mỗi tên miền; hai bản ghi sẽ gây lỗi vĩnh viễn.
- Đánh giá dừng sau 10 thành phần gây tra cứu DNS: include, a, mx, ptr, exists, redirect.
- ip4, ip6 và all không được tính vào giới hạn.
- Proton Mail: v=spf1 include:_spf.protonmail.ch ~all; Mailbox.org: v=spf1 include:mailbox.org ~all.
- ~all là cách kết thúc thông thường; DMARC mới là nơi thực thi.
- Postelva lưu bản ghi trong DNS miễn phí; một .com tốn 12,49 US$/năm mỗi năm.
Nguồn (5)
- RFC 7208, Sender Policy Framework (SPF), mục 4.5 và 4.6.4 — RFC Editor (đọc 2026-11-12)
- RFC 9989, DMARC, mục 7.1 — RFC Editor (đọc 2026-11-12)
- Tên miền riêng và chống giả mạo — Proton (đọc 2026-11-12)
- SPF, DKIM và DMARC cho tên miền riêng — Mailbox.org (đọc 2026-11-12)
- Trợ giúp DNS của Fastmail — Fastmail (đọc 2026-11-12)