Tài liệu Cloudfly VMail
Tài liệu Cloudfly VMail

Nhận sự kiện thư qua webhook

Cấu hình endpoint để biết thư tới hay hỏng ngay trong mã nguồn, chọn đúng sự kiện cần nghe và xác minh chữ ký để không nhận nhầm dữ liệu giả.

Lệnh gọi gửi thư trả về "đã nhận để gửi", không phải "đã tới nơi". Webhook là cách hệ thống báo ngược lại cho bạn chuyện gì xảy ra sau đó, mà không phải hỏi dò liên tục.

Chuẩn bị

  • Một địa chỉ HTTP công khai nhận được yêu cầu POST, hoặc một kênh chat để nhận thông báo
  • Đã gửi được thư. Xem Gửi thư đầu tiên qua Email API

Chọn kênh

Vào Email API → Webhooks → Thêm Webhook mới. Ngoài HTTP, hệ thống gửi thẳng được vào các kênh chat phổ biến.

Trang Webhooks: nút thêm webhook mới, và vùng danh sách endpoint kèm lịch sử giao dịch có các cột ID Giao dịch, URL Đích và Lần gửi

KênhHợp với
HTTPứng dụng tự xử lý — đánh dấu địa chỉ hỏng, dừng gửi lại
Kênh chat của nhómngười theo dõi, không phải máy xử lý

Kênh chat tiện cho việc cảnh báo, nhưng đừng dùng nó thay cho HTTP: con người không cập nhật được cơ sở dữ liệu của bạn mỗi khi có một địa chỉ hỏng.

Màn hình Thêm Webhook mới: chọn kênh gửi gồm HTTP và các kênh chat, ô URL đích, và danh sách năm sự kiện email chấm sent, delivered, bounced, complained, failed với hai sự kiện bounced và complained được chọn sẵn

Chọn sự kiện

Năm sự kiện, và bạn nên chọn đúng thứ cần xử lý chứ không chọn hết.

Sự kiệnKhi nào bắnBạn nên làm gì
email.sentngay khi hệ thống nhậnthường không cần — bạn đã biết từ mã trả về
email.deliveredsau khi nơi nhận báo đã nhậnghi nhận, nếu cần
email.bouncedthư bị trả lạiđánh dấu địa chỉ hỏng, ngừng gửi
email.complainedngười nhận báo cáo là thư rácngừng gửi cho địa chỉ đó ngay
email.failedkhông gửi đượcxem lý do, sửa rồi thử lại

Hai sự kiện được chọn sẵn khi bạn mở màn hình thêm mới là email.bouncedemail.complained — đó không phải mặc định ngẫu nhiên. Chúng là hai sự kiện bắt buộc phải xử lý nếu bạn muốn giữ được uy tín gửi thư lâu dài.

email.complained là sự kiện nghiêm trọng nhất. Tiếp tục gửi cho người đã báo cáo bạn là thư rác làm hỏng uy tín của cả tên miền, không riêng một chiến dịch.

Xác minh chữ ký

Sau khi tạo, hệ thống hiện một secret kèm dòng nhắc rằng nó chỉ hiển thị một lần. Lưu ngay như lưu khoá API.

Secret dùng để kiểm chữ ký đi kèm mỗi yêu cầu, ở header X-CloudFly-Signature. Endpoint của bạn phải kiểm chữ ký đó trước khi tin nội dung.

Lý do rất thực tế: địa chỉ webhook là công khai. Không kiểm chữ ký thì bất kỳ ai biết địa chỉ đó đều gửi được sự kiện email.bounced giả, và ứng dụng của bạn sẽ tự tay đánh dấu hỏng những địa chỉ khách hàng đang dùng tốt.

Sửa webhook về sau không đổi secret — chỉ khi tạo mới.

Viết endpoint cho đúng

Ba điều hệ thống trông đợi ở endpoint của bạn:

  1. Trả về nhanh. Xử lý nặng thì đẩy vào hàng đợi rồi trả lời ngay, đừng xử lý xong mới trả lời.
  2. Chịu được trùng lặp. Cùng một sự kiện có thể tới hơn một lần. Xử lý theo mã sự kiện, đừng cộng dồn mù quáng.
  3. Trả mã thành công khi đã nhận. Trả mã lỗi sẽ khiến hệ thống gửi lại.

Theo dõi và gỡ lỗi

Trang webhook có lịch sử giao dịch với cột ID Giao dịch, URL ĐíchLần gửi. Lịch sử lưu 30 ngày.

Triệu chứngNguyên nhân thường gặp
Cột Lần gửi tăng dần nhiều lầnendpoint trả mã lỗi, hệ thống đang gửi lại
Chưa có lịch sử nàochưa có sự kiện nào thuộc loại bạn đã chọn xảy ra
Endpoint bị tạm ngưngdùng nút Kích hoạt endpoint để bật lại

Nút Tạm ngưng endpoint hữu ích khi bạn đang sửa hệ thống nhận: nó dừng gửi mà không xoá cấu hình và không mất secret.

Kiểm tra kết quả

  1. Gửi một thư tới một địa chỉ chắc chắn không tồn tại trong tên miền bạn kiểm soát
  2. Chờ vài phút
  3. Endpoint của bạn nhận được email.bounced, và lịch sử giao dịch có một dòng thành công
  4. Địa chỉ đó xuất hiện trong danh sách chặn

Bước 4 là cách chéo để chắc chắn hệ thống và ứng dụng của bạn đang nhìn cùng một sự thật.

Trong trang này