MailLandDocs
Analitik

E-posta Kayıtları

Mail.Land üzerinden gönderilen her e-posta için ayrıntılı teslimat kayıtlarını arayın, filtreleyin ve inceleyin

Bu sayfa yalnızca işlemsel mesajları listeler: kampanya ve otomasyon e-postaları (sys_* sistem mesajları dahil) hariç tutulur. Pazarlama/otomasyon gönderim geçmişi için kampanya alıcıları uç noktasını kullanın (bkz. Kampanyalar).

E-postaları Listele

GET https://api.mail.land/v1/transactional/logs
List emails
curl "https://api.mail.land/v1/transactional/logs?limit=20" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Sorgu Parametreleri

ParametreTürVarsayılanAçıklama
cursorstring-Önceki sayfanın nextCursor değerinden alınan opak imleç. İlk sayfa için belirtmeyin. Hatalı biçimlendirilmiş veya değiştirilmiş bir imleç 400 INVALID_CURSOR döndürür.
limitint20Sayfa başına öğe sayısı
statusstring-Duruma göre filtrele (aşağıya bakın)
searchstring-Alıcı, konu veya mesaj kimliğine göre ara
fromdatetime30 gün önceBaşlangıç tarihi
todatetimeŞimdiBitiş tarihi
refreshboolfalseEski bir sayfadan kaçının: artık atlanacak bir sayım önbelleği yok

Durum Filtreleri

DeğerEşleşme
queuedKuyrukta bekliyor
sentMTA tarafından kabul edildi
deferred veya retryingGeçici olarak gecikti
deliveredBaşarıyla teslim edildi
bouncedKalıcı geri dönme
failedSistem hatası veya yönetici geri dönmesi
openedAlıcı e-postayı açtı
clickedAlıcı bir bağlantıya tıkladı
complainedAlıcı spam şikayeti iletti
Email logs response
{
  "items": [
    {
      "messageId": "t_a1b2c3d4e5f6",
      "recipient": "[email protected]",
      "subject": "Your order has shipped",
      "status": "delivered",
      "sentAt": "2026-02-17T12:34:56Z",
      "deliveredAt": "2026-02-17T12:34:58Z",
      "openedAt": "2026-02-17T13:15:00Z",
      "clickedAt": null,
      "bounceReason": null,
      "openCount": 2,
      "clickCount": 0
    },
    {
      "messageId": "t_d4e5f6a1b2c3",
      "recipient": "[email protected]",
      "subject": "Invoice #1234",
      "status": "bounced",
      "sentAt": "2026-02-17T12:30:00Z",
      "deliveredAt": null,
      "openedAt": null,
      "clickedAt": null,
      "bounceReason": "550 5.1.1 Mailbox not found",
      "openCount": 0,
      "clickCount": 0
    }
  ],
  "nextCursor": "eyJ2IjoxLCJzIjoiY3JlYXRlZGF0OmRlc2MiLCJrIjoi...",
  "hasMore": true
}

Durum Önceliği

status alanı, her e-posta için en yüksek öncelikli olayı yansıtır:

  1. complained (en yüksek)
  2. clicked
  3. opened
  4. Teslimat durumu: queued → sent → deferred → delivered → bounced → failed

Örneğin, bir e-posta teslim edilmiş ve ardından açılmışsa durum opened olarak görünür.

Performans için varsayılan olarak 30 günlük tarih aralığı uygulanır. Arama parametresi alıcı e-posta adresine, konu satırına veya mesaj kimliğine göre filtreler (büyük/küçük harf duyarsız).

Kayıt İstatistikleri

E-posta kayıtlarınız için toplu istatistikler alın:

GET https://api.mail.land/v1/transactional/logs/stats
Get log stats
curl "https://api.mail.land/v1/transactional/logs/stats" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
ParametreTürVarsayılanAçıklama
fromdatetime7 gün önceBaşlangıç tarihi
todatetimeŞimdiBitiş tarihi
emailTypeint-0 = İşlemsel, 1 = Pazarlama. Belirtmemek tüm e-posta türlerini kapsar: yalnızca işlemsel olanları kapsayan yukarıdaki "E-postaları Listele"nin aksine.
refreshboolfalseÖnbelleği atla
Log stats response
{
  "total": 4750,
  "accepted": 4750,
  "sent": 4700,
  "delivered": 4680,
  "opened": 1498,
  "clicked": 195,
  "bounced": 38,
  "complained": 1,
  "failed": 12,
  "queued": 20,
  "deliveryRate": 99.57,
  "openRate": 32.01,
  "clickRate": 13.02,
  "bounceRate": 0.81,
  "complaintRate": 0.021,
  "source": "clickhouse",
  "queryTimeMs": 32
}

Oran hesaplamaları:

OranFormül
deliveryRatedelivered / sent * 100
openRateopened / delivered * 100
clickRateclicked / delivered * 100
bounceRatebounced / sent * 100
complaintRatecomplained / sent * 100 (3 ondalık basamak)

Yanıt başlıkları önbellek durumunu gösterir:

BaşlıkDeğerler
X-CacheHIT, MISS veya FRESH
X-Stats-Sourcecache veya clickhouse
Cache-ControlHer zaman no-store, no-cache, must-revalidate

E-posta Ayrıntısı

Olay zaman çizelgesi dahil belirli bir e-postanın tam ayrıntılarını alın:

GET https://api.mail.land/v1/transactional/logs/{messageId}
Get email detail
curl https://api.mail.land/v1/transactional/logs/t_a1b2c3d4e5f6 \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Email detail response
{
  "messageId": "t_a1b2c3d4e5f6",
  "recipient": "[email protected]",
  "fromEmail": "[email protected]",
  "subject": "Your order has shipped",
  "status": "opened",
  "sentAt": "2026-02-17T12:34:56Z",
  "deliveredAt": "2026-02-17T12:34:58Z",
  "openedAt": "2026-02-17T13:15:00Z",
  "clickedAt": null,
  "createdAt": "2026-02-17T12:34:55Z",
  "bounceReason": null,
  "bounceCategory": null,
  "ipAddress": null,
  "retryCount": 0,
  "smtpResponse": "250 2.0.0 OK",
  "openCount": 2,
  "clickCount": 0,
  "htmlContent": "<html>...</html>",
  "textContent": "Your order has shipped...",
  "events": [
    {
      "eventType": "delivered",
      "timestamp": "2026-02-17T12:34:58Z",
      "ipAddress": null,
      "userAgent": null,
      "linkUrl": null,
      "bounceType": null,
      "bounceReason": null,
      "smtpResponse": "250 2.0.0 OK",
      "deviceType": null,
      "browser": null,
      "country": null,
      "city": null
    },
    {
      "eventType": "opened",
      "timestamp": "2026-02-17T13:15:00Z",
      "ipAddress": "203.0.113.45",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
      "linkUrl": null,
      "bounceType": null,
      "bounceReason": null,
      "smtpResponse": null,
      "deviceType": "desktop",
      "browser": "Chrome",
      "country": "US",
      "city": "San Francisco"
    },
    {
      "eventType": "opened",
      "timestamp": "2026-02-17T14:30:00Z",
      "ipAddress": "203.0.113.45",
      "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0)",
      "linkUrl": null,
      "bounceType": null,
      "bounceReason": null,
      "smtpResponse": null,
      "deviceType": "mobile",
      "browser": "Safari",
      "country": "US",
      "city": "San Francisco"
    }
  ]
}

events dizisi ClickHouse'dan alınır ve zaman damgasına göre sıralanır. ClickHouse geçici olarak kullanılamıyorsa, e-posta ayrıntısı yine de PostgreSQL'den döndürülür ancak events boş bir dizi olur.

Olay Alanları

AlanAçıklama
eventTypedelivered, opened, clicked, bounced, complained, ayrıca accepted, sent, deferred, admin_bounce, oob_bounce, expired
timestampOlayın gerçekleştiği zaman (UTC)
ipAddressİstemci IP'si (açılmalar/tıklamalar için)
userAgentİstemci kullanıcı aracısı dizisi
linkUrlTıklanan URL (yalnızca clicked olayları için)
bounceTypehard, soft veya unknown (yalnızca bounced olayları için)
bounceReasonSMTP yanıtı (yalnızca bounced olayları için)
smtpResponseUzak sunucu yanıtı (yalnızca delivered olayları için)
deviceTypedesktop, mobile veya tablet
browserTarayıcı adı (Chrome, Safari, Firefox, vb.)
countryISO ülke kodu
cityŞehir adı

Başarısız E-postayı Yeniden Dene

Geri dönen veya başarısız olan bir e-postanın teslimatını yeniden deneyin:

POST https://api.mail.land/v1/transactional/logs/{messageId}/retry
Retry failed email
curl -X POST https://api.mail.land/v1/transactional/logs/t_a1b2c3d4e5f6/retry \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

Mesaj Bounced veya Failed durumunda olmalı ve alıcı baskılanmış olmamalıdır.

DurumKodAçıklama
200-Yeniden deneme kabul edildi
400INVALID_REQUESTE-posta geri dönmüş veya başarısız değil
400RECIPIENT_SUPPRESSEDAlıcı baskı listesinde
404RESOURCE_NOT_FOUNDMesaj bulunamadı: EMAIL_NOT_FOUND değil
422DOMAIN_NOT_VERIFIEDGönderen alan adı artık doğrulanmamış
429MARKETING_PAUSEDBu çalışma alanı için pazarlama gönderimi şu anda duraklatılmış
422RETRY_ATTACHMENTS_UNAVAILABLEMesajın artık kurtarılamayan ekleri vardı; bunun yerine ekleriyle yeniden gönderin
422RETRY_ATTACHMENTS_UNKNOWNMesaj, ekler kaydedilmeden önce gönderildi; bu yüzden yeniden deneme eklerini garanti edemez; bunun yerine yeniden gönderin
429PLATFORM_CAPACITY_PROTECTIONPlatform kapasitesini korumak için yeni gönderim kısa süreliğine duraklatıldı; hiçbir şey değişmedi, kısa süre sonra yeniden deneyin
503RETRY_ATTACHMENT_STORAGE_UNAVAILABLEEkler şu anda okunamadı; hiçbir şey değişmedi, kısa süre sonra yeniden deneyin

Yeniden deneme, orijinal içerikle yeni bir e-posta işi oluşturur ve teslim için kuyruğa alır. Yeniden denenen kopyalar açılma/tıklama izlemesi olmadan gönderilir.

Sonraki Adımlar

Bu sayfada