हर डिलीवरी इवेंट को सत्यापित करें
Postline हर webhook पर हस्ताक्षर करता है और पुनः प्रयासों को सीमित करता है। उपभोक्ताओं को ताज़गी सत्यापित करनी चाहिए, event ID को डिडुप्लिकेट करना चाहिए, और आउट-ऑफ़-ऑर्डर डिलीवरी सहन करनी चाहिए।
इवेंट
हर endpoint को इनमें से 1–20 इवेंट प्रकारों की सदस्यता दें:
- email.accepted
- email.queued
- email.sent
- email.delivered
- email.deferred
- email.bounced
- email.complained
- email.opened
- email.clicked
- email.received
- email.suppressed
- domain.verified
- domain.failed
हस्ताक्षर इनपुट
HMAC-SHA256(secret, timestamp + "\0" + event_id + "\0" + body)
Postline-Timestamp: 1784743200
Postline-Event-Id: evt_…
Postline-Signature: v1=…अनुरोध और payload
POST https://example.com/hooks/postline
Content-Type: application/json
Postline-Event-Id: evt_3f2a9c…
Postline-Timestamp: 1784743200
Postline-Signature: v1=5d41402abc4b2a76…
{
"id": "evt_3f2a9c…",
"type": "email.delivered",
"created_at": "2026-11-05T12:00:00Z",
"data": {
"email_id": "msg_01J…",
"recipient": "user@example.net",
"provider": "gmail",
"smtp_response": "250 2.0.0 OK"
}
}प्राप्तकर्ता की आवश्यकताएं
- हस्ताक्षर की गणना ठीक-ठीक raw अनुरोध बॉडी से करें।
- हस्ताक्षरों की तुलना constant time में करें।
- अनुमत विंडो से बाहर के timestamp अस्वीकार करें।
- event_id सेव करें और हर इवेंट को एक बार प्रोसेस करें।
- यह न मानें कि इवेंट लाइफसाइकल क्रम में पहुंचते हैं।
आउटबाउंड नियंत्रण
एंडपॉइंट बनाने के लिए HTTPS आवश्यक है। Private, loopback, link-local, metadata, credential-bearing, और internal टारगेट ब्लॉक किए जाते हैं और डायल के समय फिर से resolve किए जाते हैं। रीडायरेक्ट फॉलो नहीं किए जाते। डिलीवरी बाउंडेड timeout और पुनः प्रयास प्रयासों का उपयोग करती है।
टाइमआउट और पुनः प्रयास
कोई भी 2xx प्रतिक्रिया इवेंट की पुष्टि करती है। टाइमआउट (15 s), नेटवर्क त्रुटि या अन्य कोई स्थिति विफलता है। Postline अधिकतम 6 प्रयास करता है: पहला, फिर 1 मिनट, 5 मिनट, 30 मिनट, 2 घंटे और 8 घंटे बाद। हर प्रयास डिलीवरी लॉग में दर्ज होता है और किसी भी डिलीवरी को API या डैशबोर्ड से दोबारा भेजा जा सकता है।