Webhook Olayları
Tüm webhook olay türlerinin ve verilerinin tam başvuru kaynağı
MailLand'in olay kataloğu, 6 kategoride 21 olay türü tanımlar (bu 21 türden 2'si abone olamayacağınız platform bildirimleridir). Her olay, webhook uç noktanıza imzalı bir HTTP POST isteği olarak teslim edilir.
Kataloglanan her olay henüz tetiklenmiyor. Bugün aktif ve abone olunabilir dokuz olay vardır:
message.delivered, message.deferred, message.bounced, message.failed,
message.complained, message.outcome_unknown, message.retried, message.unsubscribed ve inbound.received. Geri kalanı belgelenmiş, ayrılmış ve bir aboneliğe şu anda kabul
edilmiyor: birini eklerseniz API 400 döner. Katalog uç noktası bunu her olay için
availableNow ve customerSelectable ile bildirir: sabit bir liste yazmak yerine bu alanları
okuyun.
Olay Kataloğu
Tam olay kataloğunu programatik olarak alın:
GET https://api.mail.land/v1/webhooks/catalogcurl -X GET https://api.mail.land/v1/webhooks/catalog{
"version": 1,
"products": [
{ "id": "transactional", "name": "Transactional Email", "isActive": true, "comingSoon": false },
{ "id": "marketing", "name": "Marketing Email", "isActive": true, "comingSoon": false },
{ "id": "inbound", "name": "Inbound Email", "isActive": true, "comingSoon": false },
{ "id": "system", "name": "System Events", "isActive": true, "comingSoon": false },
{ "id": "validation", "name": "Email Validation", "isActive": false, "comingSoon": true }
],
"categories": [
{
"id": "message",
"name": "Message Events",
"events": [
{ "id": "message.sent", "name": "Message Sent", "products": ["transactional", "marketing"] },
{ "id": "message.delivered", "name": "Message Delivered", "products": ["transactional", "marketing"] }
]
}
]
}Bu uç nokta herkese açıktır (kimlik doğrulama gerekmez) ve her zaman en güncel katalog sürümünü döner.
Standart Veri Yapısı
Her webhook teslimatı tutarlı bir dış yapı içerir:
{
"event": "message.delivered",
"event_id": "evt_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5",
"timestamp": "2026-02-17T12:34:56.789Z",
"occurred_at": "2026-02-17T12:34:56.120Z",
"schema_version": 1,
"data": {
// Event-specific fields
}
}| Alan | Tür | Açıklama |
|---|---|---|
event | string | Olay türü tanımlayıcısı |
event_id | string | Tekilleştirme için benzersiz olay kimliği (biçim: evt_{32chars}) |
timestamp | datetime | Webhook'un kuyruğa alındığı an (UTC): altta yatan olayın gerçekleştiği an değil. Bunun için data.timestamp alanına bakın. |
occurred_at | datetime | Altta yatan olayın gerçekleştiği an (UTC); ileti olaylarında data.timestamp ile aynı an |
schema_version | integer | Bu olay türünün şema sürümü (bugün 1); X-MLND-Event-Version başlığında da bulunur. Bkz. Sürümleme |
data | object | Olaya özel veriler |
Her mesaj olayının data alanı ayrıca status_version, status, previous_status,
complaint_status ve reason içerir, bkz. Durum sürümleri.
Durum sürümleri
Her mesaj olayı data.status_version, data.status, data.previous_status, data.complaint_status
ve data.reason içerir. MailLand, mesajın durumunda, nedeninde veya şikâyet durumunda bir değişiklik
için her olay gönderdiğinde status_version bir artar.
İki istisna:
- Bir mesaj
queuedveyasentikenstatus_version0 ile başlar.queueddurumundansentdurumuna geçiş olay göndermez ve sürümü değiştirmez. - Birden çok
message.deferredolayı aynıstatus_versiondeğerini paylaşabilir: tekrarlanan bir gecikme durumu değiştirmez.
Webhook'lar sırasız gelebilir ve yeniden denenebilir; bu yüzden onları varış sırasına göre değil,
her zaman status_version değerine göre uygulayın.
Bir durum, kesinleştikten sonra değişebilir. MailLand bildiğini bildiği anda raporlar. Sonradan
daha fazlasını öğrenirse yeni durumu daha yüksek bir status_version ile gönderir:
- teslim edilmiş bir mesaj, alıcının sunucusu onu sonradan reddettiğinde geri dönebilir (bant dışı geri dönüş);
- bir iç arızadan sonra veya MailLand'in posta sunucusu toparlandıktan sonra bir teslim ya da ret geç
bildirilebilir. Bu durumda
failedbir mesajbouncedveyadeliveredolabilir,bouncedbir mesajdeliveredolabilir veunknownbir mesaj herhangi bir son duruma geçebilir.
Bir mesaj asla delivered durumundan failed durumuna geçmez. MailLand bu düzeltmeleri sayar.
| Alan | Tür | Açıklama |
|---|---|---|
status_version | integer | Bu olayın tanımladığı mesaj durumunun sürümü. |
status | string | Mesajın bu sürümdeki durumu: queued, sent, deferred, unknown, delivered, bounced veya failed. |
previous_status | string veya null | Bu değişiklikten önceki durum; ilk değişiklikten önce null. |
complaint_status | string | none veya complained. |
reason | string veya null | bounced, failed ve unknown için geri dönüş veya hata nedeni; aksi halde null. |
Yeniden deneme süreleri
MailLand ertelenen bir mesajı yeniden deneme süresi dolana kadar yeniden dener: işlemsel postada,
teslim kuyruğuna ilk verildikten yaklaşık 5 saat sonrasına, pazarlama postasında yaklaşık 25 saat
sonrasına kadar. Süre dolduktan sonra MailLand mesajı yeni bir teslim denemesi için kuyruğa almaz. Süre
dolduğunda zaten bir bağlantı bekleyen bir kopya bundan sonra da denenebilir. Bunlar yeniden deneme
süreleridir, son olayı ne zaman alacağınıza dair söz değildir. Her olayı, sonuç MailLand'e ulaştığında
alırsınız; bu gecikme henüz ölçülmedi ve bir iç kesinti sırasında daha uzun olabilir. MailLand'in 24 saat
içinde teslim kuyruğuna veremediği bir mesaj expired olarak sonlandırılır.
Bir mesajın güncel durumunu webhook'lardan tutuyorsanız (işlem gerekli)
Bu, mevcut entegrasyonlar için bir davranış değişikliğidir. message.failed veya message.delivered
olayını kalıcı sayan ve sonraki olayları yok sayan bir entegrasyon, bir düzeltmeden sonra yanlış bir
durumda kalabilir. Zaten var olan olay adlarının artık yeni olası sıraları vardır.
- Her mesaj olayına abone olun:
message.delivered,message.deferred,message.bounced,message.failed,message.complained,message.outcome_unknownvemessage.retried. Ancak o zaman aldığınız olaylar her durum değişikliğini içerir. status_versiondeğerini durumla birlikte saklayın. Bir olayı yalnızcastatus_versiondeğeri sakladığınızdan yüksekse uygulayın; aynı sürümlü birmessage.deferredhiçbir şeyi değiştirmez.message.failed,message.bouncedveyamessage.deliveredsonrasında da olayları işlemeye devam edin: daha yüksekstatus_versiontaşıyan sonraki bir olay önceki durumun yerini alır.- API'nin
status_versiondeğerine kadar her olayı aldığınızda durumunuz API'ninkine eşittir. API, o ana kadar aldığınız webhook'lardan ileride olabilir vestatus_version0 iken olay olmadansentgösterebilir.
Yalnızca bazı mesaj olaylarına abone iseniz, aldığınız en yüksek status_version güncel durum
olmayabilir: abone olmadığınız bir olay türü durumu değiştirmiş olabilir. Güncel durumu API'den
okuyun (örneğin son aldığınız olayı message.failed, message.bounced veya message.outcome_unknown
olan her mesaj için) ve uzlaştırın.
Entegrasyonunuzu değiştiremiyorsanız, önemsediğiniz mesajların durumunu API'den sorgulayın. Yalnızca olay sayan veya yalnızca geçmiş gösteren entegrasyonların bir değişikliğe ihtiyacı yoktur.
Mesaj Olayları
message.sent
Örnektir: henüz yayınlanmıyor. Bu olay katalogda var ama bugün için bir üreteci yok.
{
"event": "message.sent",
"event_id": "evt_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5",
"timestamp": "2026-02-17T12:34:56.789Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-02-17T12:34:56.789Z"
}
}message.delivered
E-posta, alıcının posta sunucusuna başarıyla teslim edildiğinde tetiklenir.
Bu olay, aynı mesaj için daha önceki bir son durumdan sonra bir düzeltme olarak da gelebilir. Bkz. Durum sürümleri.
{
"event": "message.delivered",
"event_id": "evt_b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"timestamp": "2026-02-17T12:34:58.123Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-02-17T12:34:58.123Z",
"smtp_response": "OK",
"status_version": 1,
"status": "delivered",
"previous_status": "sent",
"complaint_status": "none",
"reason": null
}
}message.deferred
Teslimat geçici olarak ertelendiğinde tetiklenir. MailLand otomatik olarak yeniden dener.
Bir mesaj birkaç kez ertelenebilir. İlk erteleme status_version değerini artırır; tekrarlanan
ertelemeler aynı status_version değerini taşır.
{
"event": "message.deferred",
"event_id": "evt_c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7",
"timestamp": "2026-02-17T12:35:00.000Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-02-17T12:35:00.000Z",
"smtp_response": "Try again later",
"bounce_reason": "TransientFailure"
}
}message.bounced
Bir e-posta geri döndüğünde (kalıcı veya geçici) tetiklenir.
Bu olay, aynı mesaj için daha önceki bir son durumdan sonra bir düzeltme olarak da gelebilir. Bkz. Durum sürümleri.
{
"event": "message.bounced",
"event_id": "evt_d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8",
"timestamp": "2026-02-17T12:35:01.000Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-02-17T12:35:01.000Z",
"bounce_type": "hard",
"bounce_reason": "InvalidRecipient",
"smtp_response": "The email account that you tried to reach does not exist.",
"status_version": 1,
"status": "bounced",
"previous_status": "sent",
"complaint_status": "none",
"reason": "InvalidRecipient"
}
}bounce_reason, MailLand'in bounce'a atadığı sınıflandırma belirtecidir (ör. InvalidRecipient,
QuotaIssues, SpamBlock), ham SMTP metni değildir, bunun için smtp_response kullanın.
bounce_type, hard, soft, blocked veya unknown değerlerinden biridir.
smtp_response, alıcı sunucunun yanıt metnidir; sayısal yanıt kodunu ve genişletilmiş durum kodunu
içermez. bounce_type, MailLand'in adresle ne yaptığını söyler: hard, tüm e-postalar için
engellendi; soft, pazarlama e-postaları için 30 gün engellendi; blocked, ret adresle değil
gönderimle ilgiliydi (örneğin spam filtresi, gönderen kimlik doğrulaması, itibar veya alıcının
politikası), bu yüzden hiçbir şey engellenmez; unknown, sınıflandırma yok, soft gibi işlenir.
message.failed
MailLand bir mesajı, teslim edilmediğine dair kesin kanıta dayanarak, alıcıdan değil MailLand
tarafından kaynaklanan bir nedenle sonlandırdığında tetiklenir. Durum sürümleri
altında anlatılan durumlarda, ardından daha yüksek bir status_version ile message.delivered veya
message.bounced gelebilir. Mesajın durumu Bounced değil Failed olur ve reason durumu belirtir:
| Neden | Ne oldu |
|---|---|
dkim_revoked | Mesaj MailLand'in teslim kuyruğunda bekliyordu ve MailLand'in daha sonra gönderen alan adı için acil olarak iptal ettiği bir DKIM anahtarıyla imzalanmıştı (örneğin anahtarın ele geçirildiğinden şüphelenildikten sonra). MailLand böyle bir mesajı asla teslim etmez ve yeniden imzalamaz: mesajın süresi bir sonraki denemede dolar; işlemsel e-postalarda yaklaşık 30 dakika, pazarlama e-postalarında 4 saat içinde. |
admin_bounce | Bir MailLand operatörü mesajı MailLand'in teslim kuyruğundan çıkardı. |
dkim_key_revoked | Gönderen alan adı acil DKIM bekletmesi altında olduğu için MailLand mesajı teslim kuyruğuna girmeden reddetti. |
inject_failed | MailLand'in teslim kuyruğu mesajı kesin olarak reddetti; mesaj teslim için hiç kuyruğa alınmadı. |
expired | MailLand mesajı kabul etti ancak 24 saat içinde teslim kuyruğuna vermedi; bu yüzden göndermeden sonlandırdı. |
template_variable_missing | Mesajda bu alıcı için değeri olmayan bir {{name}} yer tutucusu vardı; bu yüzden MailLand mesajı yer tutucu olduğu gibi göndermedi. |
- Alıcı engellenmez ve bu hata geri dönüş oranınıza sayılmaz.
- Bir mesaj en fazla bir
message.failedüretir. MailLand daha sonra bir teslim veya ret almadıkça bu, o mesajın son olayıdır; alırsa daha yüksek birstatus_versionilemessage.deliveredveyamessage.bouncedgelir.
Alıcı posta sunucusunun reddi message.bounced olarak bildirilir, asla message.failed olarak değil.
{
"event": "message.failed",
"event_id": "evt_e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
"timestamp": "2026-09-28T02:00:19.1047332Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-09-28T02:00:18.2522997Z",
"reason": "dkim_revoked",
"smtp_response": "Next delivery time PT3.028008S > PT1S",
"status_version": 1,
"status": "failed",
"previous_status": "sent",
"complaint_status": "none"
}
}| Alan | Açıklama |
|---|---|
reason | MailLand'in mesajı neden sonlandırdığı: yukarıdaki değerlerden biri. Başka her değeri MailLand tarafında yeni bir neden olarak ele alın. |
smtp_response | Varsa MailLand'in kendi teslim kuyruğundan gelen metin (dkim_revoked, admin_bounce, inject_failed), yoksa null. Yalnızca bilgi amaçlıdır: asla alıcı sunucusunun yanıtı değildir. |
message.outcome_unknown
MailLand bir mesajın teslim kuyruğuna ulaşıp ulaşmadığını belirleyemediğinde tetiklenir; örneğin teslim
kesintiye uğradığı ve sonradan doğrulanamadığı için. Mesajın yeniden deneme süresinden bir süre sonra,
şu an 7 gün, o zamana kadar hiçbir kanıt gelmemişse gönderilir. Bu bir son durum değildir. Durum
unknown olur. MailLand sonucu daha sonra öğrenirse, daha yüksek bir status_version ile
message.delivered, message.bounced veya message.failed alırsınız.
{
"event": "message.outcome_unknown",
"event_id": "evt_0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d",
"timestamp": "2026-10-08T17:05:00.000Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-10-08T17:05:00.000Z",
"status_version": 1,
"status": "unknown",
"previous_status": "queued",
"complaint_status": "none",
"reason": "handoff_undetermined"
}
}message.retried
Geri dönen veya başarısız bir mesajı yeniden denediğinizde ve MailLand onu tekrar kuyruğa aldığında
tetiklenir. Durum queued olur ve status_version artar; yeniden gönderilen kopyanın olayları daha
yüksek sürümlerle gelir. Bu bir son durum değildir.
{
"event": "message.retried",
"event_id": "evt_1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e",
"timestamp": "2026-10-01T18:00:00.000Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-10-01T18:00:00.000Z",
"attempt": 1,
"status_version": 2,
"status": "queued",
"previous_status": "bounced",
"complaint_status": "none",
"reason": null
}
}Etkileşim Olayları
message.opened ve message.clicked katalogda var ama müşteri
tarafından seçilemez ve bugün yayınlanmıyor. Bunlara abone olamazsınız: oluşturma/güncellemede
seçmeye çalışmak 400 "One or more invalid events selected" ile reddedilir. Aşağıdaki örnekler
yalnızca gösterim amaçlıdır.
message.opened
Örnektir: kullanılamıyor.
{
"event": "message.opened",
"event_id": "evt_f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0",
"timestamp": "2026-02-17T13:15:00.000Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-02-17T13:15:00.000Z"
}
}message.clicked
Örnektir: kullanılamıyor.
{
"event": "message.clicked",
"event_id": "evt_g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1",
"timestamp": "2026-02-17T13:16:00.000Z",
"data": {
"message_id": "t_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-02-17T13:16:00.000Z"
}
}message.unsubscribed
Bir alıcı gönderdiğiniz bir iletiden abonelikten çıktığında yayınlanır: iletinin List-Unsubscribe başlığı veya
mailto: adresi, tek tıklamalı POST, abonelikten çıkma bağlantısı ya da tercih sayfası üzerinden. API veya panel
üzerinden kendinizin yaptığı abonelik iptalleri ve spam şikayetleri (message.complained) için yayınlanmaz. İleti
başına bir kez, alıcının çıkarıldığı anda, ona abone her uç noktaya gönderilir. Her ileti olayı gibi data ayrıca iletinin
güncel durum alanlarını da taşır (Durum sürümleri bölümüne bakın).
{
"event": "message.unsubscribed",
"event_id": "evt_h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2",
"timestamp": "2026-02-17T14:00:00.000Z",
"data": {
"message_id": "m_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-02-17T14:00:00.000Z",
"status_version": 3,
"status": "delivered",
"previous_status": "queued",
"complaint_status": "none",
"reason": null
}
}Engelleme Olayları
message.complained
Bir alıcı e-postayı spam olarak işaretlediğinde (ISP geri bildirim döngüsü) tetiklenir.
{
"event": "message.complained",
"event_id": "evt_i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3",
"timestamp": "2026-02-17T15:00:00.000Z",
"data": {
"message_id": "m_a1b2c3d4e5f6",
"recipient": "[email protected]",
"timestamp": "2026-02-17T15:00:00.000Z",
"feedback_type": "abuse"
}
}%0,1'in üzerindeki şikayet oranları gönderen itibarınıza zarar verebilir. message.complained
olaylarını yakından izleyin ve yalnızca izin vermiş alıcılara gönderdiğinizden emin olun.
suppression.added
Örnektir: henüz yayınlanmıyor. Bu olay katalogda var ama bugün için bir üreteci yok.
{
"event": "suppression.added",
"event_id": "evt_j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4",
"timestamp": "2026-02-17T15:00:01.000Z",
"data": {
"email": "[email protected]",
"type": "complaint",
"scope": "global",
"reason": "Spam complaint via ISP feedback loop"
}
}suppression.removed
Örnektir: henüz yayınlanmıyor. Bu olay katalogda var ama bugün için bir üreteci yok.
{
"event": "suppression.removed",
"event_id": "evt_k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5",
"timestamp": "2026-02-17T16:00:00.000Z",
"data": {
"email": "[email protected]",
"type": "manual",
"scope": "global"
}
}Gelen Kutusu Olayları
inbound.received
Alan adlarınızdan birine gelen bir e-posta alındığında tetiklenir.
Bu olay, bu sayfadaki diğer tüm olaylar gibi standart zarfı kullanır: event_id,
X-MLND-Event-Id ile aynıdır ve yeniden denemeler boyunca değişmez, occurred_at e-postanın alındığı
andır ve gelen posta alanları data altındadır. Her ekin id değeri yeniden denemeler boyunca
değişmez; download_url ise her denemede yenidir. Alan başvurusu: Gelen Posta Webhook'ları.
{
"event": "inbound.received",
"event_id": "evt_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
"timestamp": "2026-02-17T12:00:00.000Z",
"occurred_at": "2026-02-17T12:00:00.000Z",
"schema_version": 1,
"data": {
"idempotency_key": "r7n2k5x9m1p4w6_s5m3x8k1p7n4w2",
"email": {
"id": "r7n2k5x9m1p4w6",
"received_at": "2026-02-17T12:00:00.000Z",
"size_bytes": 4521,
"envelope": {
"from": "[email protected]",
"to": ["[email protected]"]
},
"headers": {
"from": { "address": "[email protected]", "name": "Jane Doe" },
"to": [{ "address": "[email protected]" }],
"subject": "Help with my order",
"message_id": "<[email protected]>",
"date": "2026-02-17T11:59:50.000Z"
},
"body": {
"text_preview": "Hi, I need help with...",
"has_text": true,
"has_html": true
},
"attachments": [],
"authentication": {
"spf": { "result": "pass" },
"dkim": { "result": "pass" },
"dmarc": { "result": "pass" }
},
"spam": {
"score": 0.1,
"is_spam": false,
"reason": null
},
"source": {
"ip": "203.0.113.10",
"hostname": "mail.external.com"
}
},
"matched_route": {
"id": "s5m3x8k1p7n4w2",
"name": "Support inbox"
}
}
}Hesap Olayları
account.webhook_paused
Yayınlanmaz. Otomatik duraklatma gerçektir ve Yeniden Deneme Mantığı
sayfasında açıklandığı gibi gerçekleşir, ancak webhook'un kendi pausedAt / pausedReason
alanları ve uygulama içi bir bildirim üzerinden iletilir, bir webhook olayı olarak değil.
Bir webhook uç noktasına "uç noktanız çalışmayı durdurdu" göndermek yapısal olarak güvenilmezdir ve
zaten hiçbir abonelik şu anda bu olayı içeremez.
Bir webhook, ardışık hatalar nedeniyle otomatik olarak duraklatıldığında tetiklenir.
{
"event": "account.webhook_paused",
"event_id": "evt_m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7",
"timestamp": "2026-02-17T18:00:00.000Z",
"data": {
"webhook_id": "z8m3p1k6x4w2n7",
"webhook_name": "Production Events",
"consecutive_failures": 10,
"last_error": "Connection refused"
}
}account.domain_verified
Örnektir: henüz yayınlanmıyor. Bu olay katalogda var ama bugün için bir üreteci yok.
{
"event": "account.domain_verified",
"event_id": "evt_n4o5p6q7r8s9t0u1v2w3x4y5z6a7b8",
"timestamp": "2026-02-17T10:15:00.000Z",
"data": {
"domain_id": "q3z8v1k6m9p2x5",
"domain": "yourdomain.com"
}
}account.domain_failed
Örnektir: henüz yayınlanmıyor. Bu olay katalogda var ama bugün için bir üreteci yok.
{
"event": "account.domain_failed",
"event_id": "evt_o5p6q7r8s9t0u1v2w3x4y5z6a7b8c9",
"timestamp": "2026-02-17T10:15:00.000Z",
"data": {
"domain_id": "q3z8v1k6m9p2x5",
"domain": "yourdomain.com",
"reason": "DKIM record not found for selector mlnd"
}
}account.quota_warning
Örnektir: henüz yayınlanmıyor. Bu olay katalogda var ama bugün için bir üreteci yok.
{
"event": "account.quota_warning",
"event_id": "evt_p6q7r8s9t0u1v2w3x4y5z6a7b8c9d0",
"timestamp": "2026-02-17T20:00:00.000Z",
"data": {
"used": 45000,
"limit": 50000,
"percentage": 90
}
}account.quota_exceeded
Örnektir: henüz yayınlanmıyor. Bu olay katalogda var ama bugün için bir üreteci yok.
{
"event": "account.quota_exceeded",
"event_id": "evt_q7r8s9t0u1v2w3x4y5z6a7b8c9d0e1",
"timestamp": "2026-02-17T22:00:00.000Z",
"data": {
"used": 50000,
"limit": 50000,
"percentage": 100
}
}Olay Özeti
"Kullanılabilir", kataloğun availableNow bayrağıdır: bugün gerçekten bir şeyin olayı
yayınlayıp yayınlamadığı. Yalnızca kullanılabilir olaylar bir aboneliğe dahil edilebilir.
| Olay | Kullanılabilir | Ürünler | Alan Adına Özgü | Açıklama |
|---|---|---|---|---|
message.delivered | Evet | transactional, marketing | Evet | Başarıyla teslim edildi |
message.deferred | Evet | transactional, marketing | Evet | Geçici olarak ertelendi |
message.bounced | Evet | transactional, marketing | Evet | Kalıcı veya geçici geri dönüş |
message.failed | Evet | transactional, marketing | Evet | MailLand tarafından kesin kanıtla, MailLand tarafındaki bir nedenle sonlandırıldı; ardından bir düzeltme gelebilir (bkz. Durum sürümleri) |
message.outcome_unknown | Evet | transactional, marketing | Evet | MailLand mesajın teslim kuyruğuna ulaşıp ulaşmadığını belirleyemedi; son durum değil |
message.retried | Evet | transactional, marketing | Evet | Geri dönen veya başarısız bir mesaj yeniden denendi ve tekrar kuyrukta; son durum değil |
message.complained | Evet | transactional, marketing | Evet | Spam olarak işaretlendi |
inbound.received | Evet | inbound | Evet | Gelen e-posta alındı |
message.sent | Henüz değil | transactional, marketing | Evet | E-posta kabul edildi ve kuyruğa alındı |
message.opened | Henüz değil | transactional, marketing | Evet | İzleme pikseli yüklendi |
message.clicked | Henüz değil | transactional, marketing | Evet | Bağlantıya tıklandı |
message.unsubscribed | Evet | transactional, marketing | Evet | Alıcı abonelikten çıktı |
suppression.added | Henüz değil | transactional, marketing | Hayır | Engelleme listesine eklendi |
suppression.removed | Henüz değil | transactional, marketing | Hayır | Engelleme listesinden kaldırıldı |
account.webhook_paused | Henüz değil | system | Hayır | Webhook otomatik olarak duraklatıldı |
account.domain_verified | Henüz değil | system | Hayır | Alan adı doğrulandı |
account.domain_failed | Henüz değil | system | Hayır | Alan adı doğrulaması başarısız oldu |
account.quota_warning | Henüz değil | system | Hayır | Kota sınıra yaklaşıyor |
account.quota_exceeded | Henüz değil | system | Hayır | Kota tükendi |
Gelecekteki Olaylar
includeFutureEvents true olduğunda (varsayılan), abone olduğunuz ürünlere yeni olay türleri
eklendikçe webhook'unuz bunları otomatik olarak alır. Aboneliğinizi mevcut olay anlık görüntüsüne
kilitlemek için bunu false olarak ayarlayın.
Yukarıda "Henüz değil" olarak işaretlenen olaylar, üreticileri yayına girdiğinde abone olunabilir hale gelir: burada belgelenen olay adları ve veri yapıları bu gerçekleştiğinde değişmeyecektir.
Sonraki Adımlar
- İmza Doğrulama: olayların MailLand'den geldiğini doğrulayın
- Yeniden Deneme Mantığı: yeniden deneme davranışını anlayın
- Webhook'lara Genel Bakış: webhook oluşturun ve yönetin