Hủy đăng ký một lần nhấp (RFC 8058)
Hủy đăng ký một lần nhấp cho phép người đọc rời khỏi bản tin của bạn bằng nút Hủy đăng ký (Unsubscribe) mà ứng dụng thư hiển thị cạnh tên người gửi, không cần mở trang web nào. RFC 8058 quy định cách hoạt động: hai header trong thư và một yêu cầu HTTPS POST. ReputeCast thêm các header hủy đăng ký một lần nhấp theo RFC 8058 vào mọi thư Gửi hàng loạt và Tự động hóa, và tự trả lời yêu cầu POST, nên bạn không cần cấu hình gì; trang này giải thích những gì ReputeCast gửi đi và cách kiểm tra.
Các header ReputeCast thêm vào
Phần tiêu đề “Các header ReputeCast thêm vào”Mọi thư Gửi hàng loạt và Tự động hóa đều mang các header sau (TOKEN là token đã ký của một người nhận):
List-Unsubscribe: <https://reputecast.acme.io/p/acme-newsletter/unsubscribe/TOKEN>, <mailto:[email protected]?subject=unsubscribe%20TOKEN>List-Unsubscribe-Post: List-Unsubscribe=One-ClickFeedback-ID: 0199ab12:acme-newsletter:broadcast:reputecast- Địa chỉ HTTPS là URL công khai của hệ thống, tiếp theo là
/p/<workspace>/unsubscribe/<token>. Địa chỉ này luôn dùng URL công khai của hệ thống, kể cả khi các trang công khai của không gian làm việc chạy trên tên miền riêng. - Token xác định không gian làm việc, thư và liên hệ. Token được ký bằng HMAC dẫn xuất từ khóa bí mật của hệ thống, không chứa dữ liệu cá nhân ở dạng đọc được, và không hết hạn.
- Địa chỉ
mailto:là địa chỉ Reply-To của chiến dịch, hoặc Reply-To của người gửi, nếu không có thì là địa chỉ From, với tiêu đềunsubscribe <token>. Địa chỉ này dành cho các ứng dụng thư không gửi được POST. ReputeCast không đọc thư gửi đến đó: các yêu cầu này đến hộp thư đó, và bạn tự hủy đăng ký cho liên hệ trong Quản lý liên hệ. Feedback-IDdành cho vòng phản hồi của Gmail: phần đầu của mã chiến dịch, không gian làm việc, luồng vàreputecast.
RFC 8058 yêu cầu một URI HTTPS trong List-Unsubscribe, giá trị chính xác List-Unsubscribe=One-Click trong
List-Unsubscribe-Post, và một chữ ký DKIM bao gồm cả hai header
(RFC 8058, mục 3.1 và 4, kiểm tra tháng 10/2026). Chữ ký DKIM do
nhà cung cấp gửi thư tạo, nên nó phụ thuộc vào việc DKIM đã được cấu hình.
Thư nào mang các header này
Phần tiêu đề “Thư nào mang các header này”| Thư | Header |
|---|---|
| Gửi hàng loạt (chiến dịch) | List-Unsubscribe với địa chỉ HTTPS và mailto:, cùng List-Unsubscribe-Post |
| Tự động hóa | Như trên |
| Email giao dịch thuộc danh mục Tùy chọn | List-Unsubscribe chỉ với địa chỉ HTTPS, cùng List-Unsubscribe-Post |
| Email giao dịch thuộc danh mục Thiết yếu | Không có. Người nhận không thể tắt các thư này; liên kết hủy đăng ký của chúng mở trung tâm tùy chọn |
| Thư Hệ thống: xác nhận, đặt lại mật khẩu, thư gửi thử | Không có |
| Bản sao của kiểm tra vị trí thư | Các header của Gửi hàng loạt, nhưng hủy đăng ký từ một bản sao không thay đổi gì |
Gmail và Yahoo chỉ yêu cầu hủy đăng ký một lần nhấp với thư tiếp thị; thư giao dịch được miễn (Google, Email sender guidelines FAQ, kiểm tra tháng 10/2026). Xem Email giao dịch trong ReputeCast để biết về các danh mục.
Hai nhà cung cấp gửi thư làm thay đổi điều này:
- Brevo gỡ hai header của ReputeCast và đặt header riêng, nên các lượt hủy đăng ký một lần nhấp đi đến Brevo, rồi Brevo báo lại cho ReputeCast qua webhook hủy đăng ký. Sau đó ReputeCast thêm địa chỉ vào danh sách chặn gửi. Xem Gửi thư bằng Brevo.
- Azure Communication Services không đưa
List-Unsubscribevào chữ ký DKIM, nên không thể trông cậy vào hủy đăng ký một lần nhấp của Gmail và Yahoo ở đó. Xem Gửi thư bằng Azure Communication Services.
Hủy đăng ký một lần nhấp hoạt động thế nào
Phần tiêu đề “Hủy đăng ký một lần nhấp hoạt động thế nào”- Khi gửi, ReputeCast ký một token cho từng người nhận và đặt địa chỉ hủy đăng ký vào các header và vào liên kết
{{ unsubscribe_url }}ở chân thư. - Ứng dụng thư hiển thị nút Hủy đăng ký. Gmail chỉ hiển thị nút này cho những thư vượt qua các bước kiểm tra điều kiện riêng của Gmail, kể cả khi các header đã đúng (FAQ, kiểm tra tháng 10/2026).
- Khi người đọc xác nhận, ứng dụng thư gửi một yêu cầu HTTPS POST với nội dung
List-Unsubscribe=One-Click, không kèm cookie hay thông tin đăng nhập nào. - ReputeCast kiểm tra token và hủy đăng ký cho liên hệ ngay trong cùng yêu cầu, rồi trả lời
200với nội dungĐã hủy đăng ký.Câu trả lời dùng ngôn ngữ của trang công khai: ngôn ngữ mà headerAccept-Languagecủa yêu cầu chọn nếu trang có ngôn ngữ đó, nếu không thì ngôn ngữ mặc định của trang (với trang tiếng Anh làUnsubscribed.). - Từ đó, các thư Gửi hàng loạt và Tự động hóa bỏ qua địa chỉ này.
POST /p/acme-newsletter/unsubscribe/TOKEN HTTP/1.1Host: reputecast.acme.ioContent-Type: application/x-www-form-urlencoded
List-Unsubscribe=One-Click| Phản hồi | Khi nào |
|---|---|
200 |
Đã hủy đăng ký. Liên hệ đã được hủy đăng ký, hoặc đã hủy từ trước. Lặp lại yêu cầu không thay đổi gì. |
400 |
Không đọc được nội dung yêu cầu. |
404 |
Token không hợp lệ, bị hỏng, hoặc thuộc về không gian làm việc khác. |
500 |
Cơ sở dữ liệu gặp lỗi: “Hiện chưa hủy đăng ký được; hãy thử lại sau một phút.” |
Endpoint chỉ đọc trường này từ nội dung yêu cầu, gửi dưới dạng application/x-www-form-urlencoded hoặc
multipart/form-data, và không bao giờ chuyển hướng một yêu cầu POST một lần nhấp. Yêu cầu GET đến cùng địa chỉ sẽ
mở trang hủy đăng ký (với đề nghị tùy chọn “Ít email hơn” và ô chọn lý do) và không thay đổi gì
cho đến khi người đọc xác nhận trên trang đó. Yêu cầu HEAD, loại yêu cầu mà các trình quét liên kết gửi, cũng không
thay đổi gì.
Một lần hủy đăng ký thay đổi những gì
Phần tiêu đề “Một lần hủy đăng ký thay đổi những gì”- Danh sách: liên hệ rời khỏi mọi danh sách của không gian làm việc, không chỉ danh sách của chiến dịch, và trạng thái của liên hệ chuyển thành đã hủy đăng ký.
- Danh sách chặn gửi: địa chỉ được thêm vào với lý do Đã hủy đăng ký và phạm vi Chỉ tiếp thị: các thư Gửi hàng loạt và Tự động hóa dừng lại, còn thư Hệ thống (như đặt lại mật khẩu) và email giao dịch vẫn đến. Xem Danh sách chặn gửi.
- Lịch sử đồng ý: một sự kiện cho mỗi danh sách đã rời, với nguồn là một lần nhấp (one-click), địa chỉ IP và trình duyệt hoặc ứng dụng thư.
- Báo cáo: lượt hủy đăng ký được tính cho chiến dịch mà thư thuộc về. Hủy đăng ký một lần nhấp không kèm lý do.
- Email giao dịch: hủy đăng ký một lần nhấp từ một danh mục Tùy chọn chỉ tắt riêng danh mục đó.
Yêu cầu
Phần tiêu đề “Yêu cầu”- URL công khai dùng HTTPS. Ứng dụng thư chỉ gửi POST đến địa chỉ HTTPS. Khi URL công khai của hệ thống không phải
https://, Độ sẵn sàng gửi cảnh báo trong nhóm Tuân thủ: “Hủy đăng ký một lần nhấp cần địa chỉ HTTPS”. Hãy đặt URL công khai như mô tả trong Cấu hình ReputeCast. - Reverse proxy chuyển nguyên vẹn các yêu cầu POST đến các đường dẫn
/p/(Reverse proxy và TLS). - DKIM tại nhà cung cấp gửi thư, bao gồm cả các header, như RFC 8058 yêu cầu.
- Liên kết hủy đăng ký hiển thị trong cả nội dung thư. Các header không thay thế được liên kết này: Độ sẵn sàng gửi chặn chiến dịch có nội dung thư thiếu liên kết hủy đăng ký hoặc địa chỉ bưu chính (Yêu cầu gửi thư hàng loạt của Gmail, Yahoo và Microsoft).
Kiểm tra hủy đăng ký một lần nhấp
Phần tiêu đề “Kiểm tra hủy đăng ký một lần nhấp”-
Gửi một chiến dịch đến danh sách chỉ chứa địa chỉ của chính bạn. Thư gửi thử từ trình soạn thảo được gửi dưới dạng thư Hệ thống và không có header
List-Unsubscribe. -
Trong ứng dụng thư, mở mã nguồn của thư và sao chép địa chỉ HTTPS trong header
List-Unsubscribe. -
Gửi yêu cầu một lần nhấp:
Terminal curl -i -X POST 'https://reputecast.acme.io/p/acme-newsletter/unsubscribe/TOKEN' \-H 'Content-Type: application/x-www-form-urlencoded' \--data 'List-Unsubscribe=One-Click' -
Kiểm tra phản hồi: trạng thái
200,Content-Type: text/plain; charset=utf-8, và nội dungĐã hủy đăng ký.(Unsubscribed.khi ngôn ngữ mặc định của trang là tiếng Anh). Dòng trạng thái làHTTP/1.1 200 OKhoặcHTTP/2 200, tùy reverse proxy của bạn. -
Mở liên hệ trong Người đăng ký: hồ sơ cho thấy liên hệ đã hủy đăng ký khỏi mọi danh sách, và danh sách chặn gửi có địa chỉ đó với phạm vi Chỉ tiếp thị. Để hoàn tác lần kiểm tra, hãy mở địa chỉ HTTPS trong trình duyệt và đăng ký lại từ trang đó.
Để kiểm tra mà không hủy đăng ký ai, hãy dùng địa chỉ từ một bản sao của
kiểm tra vị trí thư: cùng yêu cầu POST đó trả lời 200 với “Đây là bản sao kiểm
tra vị trí hộp thư. Không ai bị hủy đăng ký.”