Công cụ kiểm tra SPF làm gì
Công cụ đọc các bản ghi TXT của tên miền bạn nhập và chọn bản ghi bắt đầu bằng v=spf1. Sau đó, công cụ lần theo mọi include và redirect giống như máy chủ nhận thư, ghi lại từng lần tra cứu cần truy vấn DNS và kiểm tra cú pháp của mọi thành phần.
Quá trình này không liên quan đến địa chỉ IP. Vấn đề ở đây là bản ghi có hợp lệ và không vượt quá giới hạn truy vấn đối với bất kỳ hệ thống nào phải đánh giá bản ghi hay không, chứ không phải một máy chủ cụ thể có được phép gửi thư hay không. Để kiểm tra điều đó, hãy gửi thư qua bài kiểm tra đầy đủ. Báo cáo sẽ hiển thị kết quả mà máy chủ nhận thực sự nhận được.
Quá nhiều lượt tra cứu DNS: giới hạn là 10
RFC 7208 giới hạn một lần đánh giá SPF ở mười thành phần cần truy vấn DNS: include, a, mx, ptr, exists và redirect. Số lần tra cứu được tính trên toàn bộ cây, vì vậy một include tự bao gồm thêm ba include khác sẽ sử dụng bốn lần. Nếu vượt quá giới hạn, kết quả là permerror và DMARC coi đó là SPF không đạt.
Công cụ tính mọi thành phần, kể cả những thành phần mà quá trình đánh giá có thể không bao giờ đi đến, vì quá trình đánh giá thực tế dừng lại ở kết quả khớp đầu tiên. Các máy chủ được liệt kê ở đầu vẫn đạt, còn những máy chủ ở phía sau bắt đầu không đạt. Nhìn từ bên ngoài, điều này giống như thư hoạt động với một số email nhưng không hoạt động với các email khác.
Các thành phần ip4 và ip6 không tốn lần tra cứu nào. Thay include bằng các dải địa chỉ, còn gọi là flattening, sẽ giảm số lần tra cứu, nhưng bạn phải tự cập nhật các dải đó theo thay đổi của nhà cung cấp.
Các lỗi SPF cần kiểm tra
Hai bản ghi SPF trên cùng một tên miền. Điều này xảy ra khi hướng dẫn thiết lập của nhà cung cấp thứ hai yêu cầu thêm một bản ghi nhưng không ai hợp nhất bản ghi đó vào bản ghi đầu tiên. Chỉ riêng việc có hai bản ghi đã gây ra permerror.
Bản ghi kết thúc bằng +all, cho phép mọi máy chủ trên internet đạt, hoặc ?all, không đưa ra kết luận về bất kỳ máy chủ nào nên không bảo vệ được gì. Thành phần ptr, mà RFC 7208 khuyến cáo không sử dụng. Các include dành cho những dịch vụ mà công ty đã ngừng sử dụng từ nhiều năm trước vẫn tốn một lần tra cứu cho mỗi include.
Câu hỏi
Bản ghi SPF có dạng như thế nào?
Đó là một bản ghi TXT trên tên miền, bắt đầu bằng v=spf1, liệt kê những nguồn được phép gửi và kết thúc bằng một quy tắc cho tất cả các nguồn còn lại. v=spf1 include:_spf.google.com ip4:203.0.113.5 ~all cho phép Google Workspace và một máy chủ gửi thư, đồng thời trả về softfail cho các nguồn còn lại. Một tên miền chỉ được công bố một bản ghi.
SPF softfail hay hardfail: ~all hay -all?
Khi đã thiết lập DMARC, cách nào cũng được vì DMARC quyết định cách xử lý thư không vượt qua kiểm tra. ~all (softfail) là lựa chọn an toàn hơn khi bạn vẫn đang xác định mọi dịch vụ gửi thư thay bạn. Chuyển sang -all khi báo cáo DMARC cho thấy không có thư hợp lệ nào bị lỗi.
Tại sao bản ghi của tôi vượt qua bài kiểm tra đầy đủ nhưng lại hiển thị hơn mười lượt tra cứu ở đây?
Máy chủ nhận đã dừng đánh giá tại điều khoản đầu tiên khớp với máy chủ của bạn, nên không thực hiện các lượt tra cứu còn lại. Một máy chủ khác nằm xa hơn trong danh sách sẽ khiến cùng quá trình đánh giá vượt quá mười lượt tra cứu và thất bại.
Truy vấn rỗng là gì?
Một truy vấn DNS không trả về bản ghi nào hoặc trả về một tên không tồn tại. RFC 7208 cho phép một lần đánh giá có hai truy vấn như vậy, truy vấn thứ ba sẽ gây ra permerror. Nguyên nhân thường gặp là include trỏ đến các tên miền không còn tồn tại.
Một domain có thể có hai bản ghi SPF không?
Không. RFC 7208 chỉ cho phép một bản ghi bắt đầu bằng v=spf1. Nếu có hai bản ghi như vậy, mọi lần đánh giá đều kết thúc bằng permerror. Hãy hợp nhất chúng: giữ một v=spf1 duy nhất, đưa các mục include và ip4 của cả hai vào đó rồi kết thúc bằng một all. v=spf1 include:_spf.google.com include:servers.mcsv.net ~all bao gồm hai nhà cung cấp trong một bản ghi.
Hướng dẫn đầy đủ: Multiple SPF records
SPF permerror có nghĩa là gì?
Lỗi vĩnh viễn: không thể đánh giá bản ghi ở trạng thái đã công bố, vì vậy thử lại vẫn cho cùng một kết quả. Nguyên nhân thường gặp là có hơn 10 lượt tra cứu DNS, hai bản ghi SPF trên một domain, lỗi cú pháp và lượt tra cứu không có kết quả thứ ba. DMARC coi permerror là SPF không đạt.
Hướng dẫn đầy đủ: SPF permerror: too many DNS lookups
Điều gì xảy ra nếu không tìm thấy bản ghi SPF?
Máy chủ nhận sẽ nhận kết quả none, DMARC xử lý kết quả này giống như fail, và bất kỳ ai cũng có thể dùng domain của bạn làm envelope sender. Hãy công bố một bản ghi TXT trên chính domain đó, bắt đầu bằng v=spf1, liệt kê các dịch vụ gửi email thay bạn và kết thúc bằng ~all hoặc -all.