Bỏ qua để đến nội dung

Cấu hình SPF, DKIM và DMARC

Hướng dẫn thao tác
Dành cho:
Quản trị viên không gian làm việc
Cần quyền:
domains:managenhạy cảm
Trong ứng dụng:
Cài đặt, rồi Người gửi

SPF, DKIM và DMARC chứng minh với các nhà cung cấp hộp thư rằng thư mang tên miền của bạn thật sự do bạn gửi. Hướng dẫn cấu hình SPF DKIM DMARC này cho thấy các bản ghi ReputeCast yêu cầu bạn công bố cho một tên miền gửi thư, cách thêm chúng trên Cloudflare, Amazon Route 53 hoặc bất kỳ nhà cung cấp DNS nào khác, và cách đọc trạng thái trực tiếp của chúng.

Bản ghi Loại DNS Công bố tại Chứng minh điều gì
SPF TXT Tên miền trong địa chỉ người gửi phong bì (MAIL FROM) Máy chủ đã chuyển giao thư được phép gửi thư thay cho tên miền đó.
DKIM CNAME hoặc TXT <selector>._domainkey.<domain> Thư được nhà cung cấp gửi thư ký bằng khóa bạn đã công bố và không bị sửa đổi.
DMARC TXT _dmarc.<domain>, hoặc tên miền tổ chức Bên nhận xử lý ra sao khi cả SPF lẫn DKIM đều không đạt theo cách căn chỉnh với địa chỉ From.

DMARC đạt khi SPF hoặc DKIM đạt và tên miền của nó căn chỉnh với tên miền trong địa chỉ From. Ở chế độ nới lỏng (relaxed), là chế độ mặc định, hai tên miền cần có cùng tên miền tổ chức: bounce.news.acme.io căn chỉnh với news.acme.io. Ở chế độ nghiêm ngặt (strict), hai tên miền phải giống hệt nhau (RFC 7489, mục 3.1, kiểm tra tháng 10/2026).

Vì vậy, ReputeCast yêu cầu một return path (MAIL FROM) tùy chỉnh trên tên miền của bạn ở mọi nơi nhà cung cấp gửi thư hỗ trợ: SPF được kiểm tra theo return path, nên với return path mặc định của nhà cung cấp gửi thư thì chỉ DKIM có thể căn chỉnh. Độ sẵn sàng gửi cảnh báo trường hợp này (“dùng MAIL FROM mặc định, nên SPF không căn chỉnh”) nhưng không chặn, vì DMARC vẫn đạt nhờ DKIM.

ReputeCast liệt kê các bản ghi ở hai nơi, với cùng một bảng:

  • Trong trình hướng dẫn kết nối, ở bước 3, Xác minh tên miền (xem Kết nối nhà cung cấp gửi thư).
  • Về sau, tại Cài đặt, rồi Người gửi: chọn Bản ghi cạnh một tên miền. Khi nhiều nhà cung cấp gửi thư dùng tên miền đó, mỗi nhà cung cấp có một tab để lọc bảng.

Mỗi nhà cung cấp gửi thư ký bằng khóa DKIM riêng, nên mỗi nhà cung cấp cần bản ghi riêng. Các nhà cung cấp gửi thư có API tên miền (Amazon SES, Mailgun, SendGrid, Resend, Mailjet, Brevo, SparkPost, và Postmark khi có account token) trả về đúng các bản ghi cần thiết, còn ReputeCast thêm các dòng SPF và DMARC dùng chung cho cả tên miền. Với Amazon SES trên news.acme.io, bảng trông như sau:

Mục đích Loại Tên Giá trị
DKIM 1 trên 3 (2 và 3 tương tự) CNAME <token>._domainkey.news.acme.io <token>.dkim.amazonses.com
Return path / MAIL FROM MX bounce.news.acme.io 10 feedback-smtp.us-east-1.amazonses.com
SPF cho MAIL FROM TXT bounce.news.acme.io v=spf1 include:amazonses.com ~all
SPF cho tên miền gửi thư TXT news.acme.io Bản ghi SPF hiện tại của bạn, có thêm include:amazonses.com
DMARC TXT _dmarc.news.acme.io v=DMARC1; p=quarantine; adkim=s; aspf=r (gợi ý)
Bước xác minh tên miền cho Amazon SES trên news.acme.io: bảy bản ghi, từ ba CNAME DKIM đến DMARC, tất cả đều đã xác minh, với nút Cloudflare và nút tệp zone phía trên bảng.
  1. Bản ghi đầu tiên trong ba bản ghi DKIM mà Amazon SES dùng để ký, mỗi bản ghi là một khóa 2048 bit.
  2. Return path (MAIL FROM) trên bounce.news.acme.io, để thư trả lại và SPF căn chỉnh với tên miền của bạn.
  3. Bản ghi SPF của tên miền gửi thư, được gộp với bản ghi bạn đang công bố.
  4. DMARC: ở đây news.acme.io theo chính sách của acme.io, nên bản ghi nằm tại _dmarc.acme.io.
  5. Dòng trạng thái trực tiếp: khi mọi bản ghi đã xác minh, dòng này hiển thị thời điểm của lần kiểm tra gần nhất.

Một số nhà cung cấp gửi thư chưa có API tên miền trong ReputeCast: máy chủ SMTP, Postal, Azure Communication Services, adapter HTTP chung (generic HTTP adapter) và Postmark khi không có account token. Với các nhà cung cấp này, bảng chỉ gồm dòng SPF của tên miền gửi thư và DMARC. Hãy thêm tên miền ngay trong nhà cung cấp gửi thư đó và công bố bản ghi DKIM mà nó hiển thị; ReputeCast kiểm tra SPF và DMARC ngay lập tức, còn DKIM ở lần gửi đầu tiên. Với máy chủ SMTP hoặc Postal, dòng SPF cho phép tên máy chủ bằng a:<host>.

Một tên miền chỉ được có một bản ghi SPF, nên ReputeCast không bao giờ yêu cầu bản ghi thứ hai. Nó đọc bản ghi bạn đang công bố và chèn các cơ chế (mechanism) mà mỗi nhà cung cấp gửi thư cần vào trước phần kết thúc all, redirect= hoặc exp=. Các phần bạn đã có được giữ nguyên; nếu không thiếu gì, giá trị chính là bản ghi của bạn, không thay đổi. Khi chưa có bản ghi nào, ReputeCast đề xuất v=spf1 <mechanisms> -all.

Ví dụ gộp SPF
Published: v=spf1 include:_spf.google.com ~all
Proposed: v=spf1 include:_spf.google.com include:amazonses.com ~all
Published: v=spf1 mx
Proposed: v=spf1 mx include:spf.mtasv.net -all

Khi cả tên miền lẫn tên miền tổ chức của nó đều chưa có bản ghi DMARC, ReputeCast gợi ý v=DMARC1; p=quarantine; adkim=s; aspf=r, kèm rua=mailto: với địa chỉ nhận báo cáo của HostRepute khi đã kết nối HostRepute. Dòng này được tính là đã xác minh ngay khi có bất kỳ bản ghi DMARC hợp lệ nào được công bố tại _dmarc.<domain> hoặc tại tên miền tổ chức, kể cả p=none. Hãy đọc Chọn chính sách DMARC trước khi công bố bản ghi gợi ý.

  • Bạn cần quyền domains:manage để thêm tên miền và thay đổi bản ghi của chúng (Chủ sở hữu và Quản trị viên có quyền này). Trong trình hướng dẫn kết nối, bạn cũng cần providers:manage. Xem Quyền và vai trò.
  • Bạn cần quyền truy cập DNS của tên miền, tại nhà cung cấp DNS mà máy chủ tên miền của nó trỏ đến.
  • Liệt kê mọi dịch vụ khác đang gửi thư dưới tên miền này, như thư văn phòng, hệ thống hỗ trợ khách hàng hoặc CRM. Các cơ chế SPF của chúng phải được giữ trong bản ghi, và mỗi dịch vụ nên ký bằng khóa DKIM riêng.
  1. Mở Cài đặt, rồi Người gửi và chọn Bản ghi cạnh tên miền. Nếu tên miền chưa có trong danh sách, hãy thêm nó trước (Thêm tên miền gửi thư và người gửi). Nếu đang ở trình hướng dẫn kết nối, bạn đã ở đúng màn hình.

  2. Nếu có nhiều nhà cung cấp gửi thư dùng tên miền, hãy chọn tab của một nhà cung cấp hoặc giữ tất cả.

  3. Xem huy hiệu phía trên bảng. Khi ReputeCast nhận ra nhà cung cấp DNS của bạn qua máy chủ tên miền, nó hiển thị tên nhà cung cấp đó, ví dụ Máy chủ tên miền: Cloudflare. Hãy chọn tab tương ứng bên dưới.

Bản ghi DNS của news.acme.io trong Cài đặt, Người gửi: các tab cho tất cả nhà cung cấp, Amazon SES, Postmark và Postal, huy hiệu Máy chủ tên miền: Cloudflare, và 11 trên 11 bản ghi đã xác minh.

Khi máy chủ tên miền là của Cloudflare, ReputeCast có thể thêm bản ghi giúp bạn qua API Cloudflare.

  1. Trong bảng điều khiển Cloudflare, vào My Profile > API Tokens, chọn Create Token và dùng mẫu Edit zone DNS. Ở phần zone resources, chọn zone của tên miền, rồi chọn Continue to summary và Create Token (Cloudflare, “Create API token”, kiểm tra tháng 10/2026).

  2. Trong ReputeCast, chọn Thêm mọi bản ghi qua API Cloudflare, dán token và chọn Thêm bản ghi. Token cần quyền Zone › DNS › Edit trên zone này. ReputeCast chỉ dùng token cho đúng yêu cầu này và không bao giờ lưu lại.

  3. Đọc kết quả. ReputeCast thêm các bản ghi còn thiếu và sửa các bản ghi có giá trị sai; các bản ghi nó không cần đến được giữ nguyên:

    • Bản ghi SPF hiện có được sửa tại chỗ, nên zone không bao giờ có hai bản ghi SPF.
    • Bản ghi DMARC hiện có được giữ nguyên.
    • Bản ghi CNAME được tạo ở chế độ DNS only (không proxy) với TTL tự động.

    Các bản ghi bị Cloudflare từ chối được liệt kê trong thông báo; hãy thêm chúng thủ công.

Để tự thêm bản ghi, vào DNS > Records trong bảng điều khiển Cloudflare, chọn Add record, chọn loại bản ghi, điền tên và giá trị, rồi chọn Save (Cloudflare, “Manage DNS records”, kiểm tra tháng 10/2026). Đặt Proxy status thành DNS only cho các bản ghi CNAME: Cloudflare khuyên dùng DNS only cho các bản ghi email (Cloudflare, “Proxy status”, kiểm tra tháng 10/2026).

Thêm bản ghi qua API cần một thành viên đã đăng nhập có quyền domains:manage. Khóa API và tác tử AI không dùng được tính năng này.

ReputeCast kiểm tra các bản ghi trong lúc bảng đang mở: cứ 30 giây một lần cho đến khi tất cả đã xác minh, với dòng “Kiểm tra mỗi 30 giây · lần cuối lúc …”. Mở trang sẽ kiểm tra lại nếu lần kiểm tra gần nhất đã quá 20 giây, và một tác vụ nền kiểm tra mọi tên miền mỗi 30 phút, nên thay đổi bạn thực hiện sau đó cũng xuất hiện trong Độ sẵn sàng gửi trong vòng một giờ.

Trạng thái Ý nghĩa
Đã xác minh Bản ghi đã được công bố với giá trị đúng.
Đang chờ Chưa tìm thấy, hoặc chưa được kiểm tra.
Đang chờ · giá trị cũ vẫn còn trong bộ nhớ đệm Một bản ghi TXT vẫn trả về giá trị cũ; trạng thái sẽ cập nhật khi hết TTL đang hiển thị.
Sai giá trị Bản ghi CNAME hoặc MX trỏ đến nơi khác; giá trị tìm thấy hiển thị bên dưới.
Còn thiếu Không có bản ghi loại đó tại tên đó.
Không kiểm tra được Truy vấn DNS thất bại. ReputeCast thử lại ở lần kiểm tra tiếp theo.

Hầu hết nhà cung cấp DNS công bố thay đổi trong vài phút; một số mất đến 48 giờ. Cho đến khi SPF cho phép nhà cung cấp gửi thư và DKIM được xác minh, Độ sẵn sàng gửi chặn các chiến dịch từ tên miền này, và việc thiếu bản ghi DMARC cũng chặn chúng.

p=none yêu cầu bên nhận vẫn chuyển thư không đạt DMARC như bình thường và chỉ gửi báo cáo cho bạn. p=quarantine đưa thư đó vào spam, còn p=reject từ chối thư. Gmail, Yahoo và Microsoft chấp nhận p=none từ người gửi hàng loạt (Yêu cầu gửi thư hàng loạt của Gmail, Yahoo và Microsoft).

  • Có dịch vụ khác gửi thư dưới tên miền, hoặc bạn không chắc: hãy bắt đầu với p=none và một địa chỉ rua để thu thập báo cáo tổng hợp. Mẹo DMARC của ReputeCast cũng khuyên như vậy khi bản ghi gợi ý của nó quá nghiêm ngặt.
  • Chỉ các nhà cung cấp gửi thư trong ReputeCast gửi thư dưới tên miền: bản ghi gợi ý của ReputeCast, p=quarantine, là an toàn khi mọi bản ghi trong bảng đã được xác minh.
_dmarc.news.acme.io TXT (chính sách khởi đầu)
v=DMARC1; p=none; rua=mailto:[email protected]

Sau đó, hãy đọc báo cáo trong vài tuần và nâng chính sách khi mọi nguồn hợp lệ đều đạt, như mô tả trong Đọc báo cáo tổng hợp DMARC. Bản ghi DMARC tại tên miền tổ chức (_dmarc.acme.io) cũng áp dụng cho các tên miền con như news.acme.io; thẻ sp= của bản ghi đặt chính sách cho các tên miền con, và ReputeCast đọc thẻ này khi tên miền con không có bản ghi riêng.

  • Tên bảng hiển thị “Bản ghi · đã xác minh 7 trên 7” (với số lượng của bạn), và dòng trạng thái ghi “Mọi bản ghi đã xác minh”.
  • Trong bảng tên miền tại Cài đặt, rồi Người gửi, SPF hiển thị pass, DKIM hiển thị Đã xác minh (hoặc, khi có nhiều nhà cung cấp gửi thư, một số đếm như 3/3 nhà cung cấp) và DMARC hiển thị chính sách, như p=quarantine. p=none hiển thị là cảnh báo, không phải lỗi.
  • Nhóm Xác thực trong Độ sẵn sàng gửi đạt với chiến dịch từ tên miền này: “SPF cho phép …”, “Ký DKIM trên …”, “DMARC p=…” và, nếu nhà cung cấp gửi thư hỗ trợ, “Tên miền MAIL FROM tùy chỉnh đã xác minh”.
  • Một lần kiểm tra vị trí thư cho thấy kết quả SPF, DKIM và DMARC mà các hộp thư thật đã ghi nhận cho các bản sao.
  • SPF hiển thị Không hợp lệ. Tên miền công bố hai bản ghi v=spf1, khiến SPF thất bại với lỗi vĩnh viễn (RFC 7208, mục 4.5, kiểm tra tháng 10/2026). Hãy gộp chúng thành một bản ghi với giá trị ReputeCast hiển thị và xóa bản ghi còn lại.
  • SPF hiển thị Quá nhiều lượt tra cứu. SPF cho phép tối đa 10 truy vấn DNS qua các phần include, a, mx, ptr, exists và redirect, kể cả các include lồng nhau (RFC 7208, mục 4.6.4, kiểm tra tháng 10/2026). Hãy bỏ include của các dịch vụ bạn không còn dùng; các phần ip4 và ip6 không được tính. ReputeCast không đếm số truy vấn của giá trị đã gộp trước khi bạn công bố, nên hãy xem trạng thái sau khi công bố.
  • SPF kết thúc bằng +all. ReputeCast coi bản ghi này là không hợp lệ, vì nó cho phép bất kỳ ai gửi thư dưới tên miền. Hãy dùng ~all hoặc -all.
  • Một bản ghi vẫn Còn thiếu dù bạn đã thêm. Kiểm tra xem tên có bị lặp tên zone không (news.acme.io.acme.io) và bạn đã sửa zone tại đúng nhà cung cấp DNS mà máy chủ tên miền trỏ đến chưa.
  • Bản ghi CNAME DKIM trên Cloudflare vẫn Đang chờ. Kiểm tra bản ghi đang ở chế độ DNS only, không phải proxy.
  • Độ sẵn sàng gửi cảnh báo khóa DKIM ngắn hơn 1024 bit. Các nhà cung cấp hộp thư yêu cầu khóa tối thiểu 1024 bit; hãy tạo khóa dài hơn ở nhà cung cấp gửi thư và công bố bản ghi mới.
  • “Cloudflare đã từ chối token này.” Token thiếu quyền Zone › DNS › Edit trên zone này. Hãy tạo token bằng mẫu Edit zone DNS cho đúng zone.
  • “Token này không thấy zone Cloudflare nào cho …” Phần zone resources của token không bao gồm zone của tên miền.
  • Không thấy nút Cloudflare. Máy chủ tên miền không phải của Cloudflare, hoặc ReputeCast chưa tra cứu chúng. Hãy dùng tệp zone.
  • Gmail từ chối thư với 550 5.7.26. Thư không đạt xác thực; xem Gmail 550 5.7.26.