Nhận OTP realtime qua Webhook trong n8n
Thay vì poll liên tục, bạn có thể để Mailtr chủ động gọi về một URL mỗi khi inbox nhận thư. n8n là công cụ automation trực quan rất hợp để nhận và xử lý sự kiện này.
Bước 1: Tạo Webhook node trong n8n
Trong n8n, thêm node Webhook, đặt method POST, và sao chép URL production của nó (dạng https://n8n-cua-ban/webhook/mailtr).
Bước 2: Đăng ký URL với Mailtr
Gọi endpoint webhooks, dán URL n8n vào. Mailtr trả về secret để xác thực chữ ký:
curl -s https://mailtr.vn/api/v1/webhooks -X POST \
-H "X-API-Key: $MAILTR_KEY" -H "content-type: application/json" \
-d "{\"url\": \"https://n8n-cua-ban/webhook/mailtr\"}"
# -> { "ok": true, "secret": "whsec_..." } Bước 3: Payload nhận được
Mỗi khi có thư, n8n nhận một POST với nội dung đã trích sẵn OTP:
{
"event": "message.received",
"message_id": "...",
"inbox_id": "...",
"to": "abc@...",
"from": "no-reply@dichvu.com",
"subject": "Mã xác minh của bạn",
"otp": "246810",
"received_at": 1782300000000
} Bước 4: Xác thực chữ ký (khuyến nghị)
Mỗi request có header X-Mail1h-Signature = HMAC-SHA256(secret, body). Trong n8n, thêm một node Function/Code để tính lại HMAC từ secret và so sánh, nhằm chắc chắn request thực sự đến từ Mailtr trước khi xử lý.
Ứng dụng
Sau khi nhận OTP, n8n có thể: điền tiếp vào một luồng tự động, gửi vào Slack/Telegram, lưu vào Google Sheet, hoặc kích hoạt bước tiếp theo của quy trình — tất cả realtime, không cần poll.