Webhooks: ইভেন্ট, স্বাক্ষর ও পুনঃচেষ্টা
Postline কোন ইভেন্ট পাঠায়, প্রতিটি অনুরোধ কীভাবে যাচাই করবেন এবং endpoint বন্ধ থাকলে কী হয়।
ইভেন্ট
প্রতিটি endpoint-কে এই ইভেন্ট প্রকারগুলোর 1–20টিতে সাবস্ক্রাইব করুন:
email.acceptedemail.queuedemail.sentemail.deliveredemail.deferredemail.bouncedemail.complainedemail.openedemail.clickedemail.receivedemail.suppresseddomain.verifieddomain.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 সংরক্ষণ করুন এবং প্রতিটি ইভেন্ট একবার প্রক্রিয়া করুন।
- ইভেন্টগুলো lifecycle অনুক্রমে আসবে বলে ধরে নেবেন না।
আউটবাউন্ড নিয়ন্ত্রণ
Endpoint তৈরির জন্য HTTPS প্রয়োজন। Private, loopback, link-local, metadata, ক্রেডেনশিয়াল-বহনকারী, এবং অভ্যন্তরীণ target ব্লক করা হয় এবং dial করার সময় আবার resolve করা হয়। Redirect অনুসরণ করা হয় না। ডেলিভারিতে সীমাবদ্ধ timeout এবং retry প্রচেষ্টা ব্যবহার করা হয়।
টাইমআউট ও পুনঃচেষ্টা
যেকোনো 2xx প্রতিক্রিয়া ইভেন্ট নিশ্চিত করে। টাইমআউট (15 s), নেটওয়ার্ক ত্রুটি বা অন্য কোনো স্ট্যাটাস ব্যর্থতা। Postline সর্বোচ্চ 6 বার চেষ্টা করে: প্রথমবার, তারপর 1 মিনিট, 5 মিনিট, 30 মিনিট, 2 ঘণ্টা ও 8 ঘণ্টা পরে। প্রতিটি প্রচেষ্টা ডেলিভারি লগে থাকে এবং যেকোনো ডেলিভারি API বা ড্যাশবোর্ড থেকে আবার পাঠানো যায়।