MailLandDocs
E-posta Gönderimi

Toplu Gönderim

Tek bir API çağrısıyla birden fazla alıcıya e-posta gönderin

Toplu gönderim yalnızca Marketing akış kimlik bilgileri ile kullanılabilir. İşlemsel kimlik bilgileri 400 BATCH_NOT_ALLOWED_FOR_TRANSACTIONAL hatası döndürür. Bu, işlemsel akışların toplu e-posta için kötüye kullanılmasını önler.

Toplu Gönderim Yapma

POST https://api.mail.land/v1/transactional/send-batch
Toplu e-posta gönder
curl -X POST https://api.mail.land/v1/transactional/send-batch \
  -H "X-API-Key: ml_pem_Ab3Kx9mN2pQ7rT4wL8yD..." \
  -H "Content-Type: application/json" \
  -d '{
    "from": {
      "email": "[email protected]",
      "name": "Your Company"
    },
    "recipients": [
      {
        "email": "[email protected]",
        "name": "Alice",
        "variables": { "firstName": "Alice", "plan": "Pro" }
      },
      {
        "email": "[email protected]",
        "name": "Bob",
        "variables": { "firstName": "Bob", "plan": "Starter" }
      }
    ],
    "subject": "Hi {{firstName}}, check out what'\''s new",
    "htmlContent": "<h1>Hey {{firstName}}!</h1><p>Your {{plan}} plan just got an upgrade.</p>",
    "variables": {
      "companyName": "Acme Inc",
      "year": "2026"
    },
    "tags": ["product-update", "february-2026"],
    "batchName": "February Product Update"
  }'

İstek Alanları

AlanTürZorunluAçıklama
fromobjectEvetGönderici adresi (email ve isteğe bağlı name)
recipientsarrayEvetAlıcı listesi (not: to değil recipients)
recipients[].emailstringEvetAlıcı e-posta adresi
recipients[].namestringHayırAlıcı görünen adı
recipients[].variablesobjectHayırAlıcıya özel şablon değişkenleri
subjectstringKoşullutemplateId kullanılmadığı sürece zorunludur
templateIdstringHayırKayıtlı bir şablon kullanın
htmlContentstringKoşulluHTML gövdesi (templateId yoksa zorunludur)
textContentstringHayırDüz metin alternatifi
variablesobjectHayırGenel değişkenler. templateId ayarlansın ya da ayarlanmasın uygulanır; anahtar çakışmasında alıcının kendi recipients[].variables değeri kazanır
replyTostringHayırYanıt adresi
batchNamestringHayırBu toplu gönderim için okunabilir ad
tagsarrayHayırAnalitik ve webhook filtreleme için etiketler
customHeadersobjectHayırÖzel e-posta başlıkları
trackingobjectHayırAçılma/tıklama izleme geçersiz kılmaları
ipPoolIdstringHayırÖzel IP havuzları için ayrılmıştır. Henüz kullanılamıyor: göndermek 400 IP_POOL_NOT_FOUND döndürür. Boş bırakın.
scheduledAtdatetimeHayırGelecekte teslim için zamanlama, en fazla 7 gün öncesine kadar
externalBatchIdstringHayırSisteminizin toplu gönderim tanımlayıcısı: gönderilirse, yanıtta aynen batchId olarak döndürülür
priorityenumHayırLow, Normal (varsayılan), High, Critical
idempotencyKeystringHayırAynı anahtar için tekrarlanan gönderimleri önler. X-Idempotency-Key başlığı tercih edilir

Alan adı farkına dikkat edin: toplu gönderim recipients kullanırken tekli gönderim to kullanır.

Yanıt

Durum: 202 Accepted

Toplu gönderim yanıtı
{
  "success": true,
  "batchId": "batch_f47ac10b58cc43729876fedcba098765",
  "messageIds": ["m_a1b2c3...", "m_d4e5f6..."],
  "totalRecipients": 2,
  "acceptedCount": 2,
  "rejectedCount": 0,
  "rejectedRecipients": [],
  "queuedAt": "2026-02-17T10:30:00Z",
  "estimatedCompletion": "2026-02-17T10:35:00Z",
  "isSandboxed": false
}
AlanTürAçıklama
batchIdstringBenzersiz toplu gönderim tanımlayıcısı
messageIdsarrayAlıcıya özel mesaj kimlikleri (pazarlama için m_ önekli)
totalRecipientsintİstekteki toplam alıcı sayısı
acceptedCountintTeslim için kabul edilen alıcı sayısı
rejectedCountintReddedilen alıcı sayısı
rejectedRecipientsarrayReddedilen alıcıların nedenleriyle birlikte detayları
estimatedCompletiondatetimeToplu gönderim işleminin tahmini tamamlanma zamanı

Değişken Birleştirme

Anahtarlar çakıştığında alıcıya özel değişkenler genel değişkenleri geçersiz kılar:

Değişken önceliği
{
  "variables": {
    "companyName": "Acme Inc",
    "greeting": "Hello"
  },
  "recipients": [
    {
      "email": "[email protected]",
      "variables": { "greeting": "Dear valued customer" }
    },
    {
      "email": "[email protected]"
    }
  ]
}

Hata İşleme

Toplu gönderime özgü hatalar:

DurumKodAçıklama
400BATCH_NOT_ALLOWED_FOR_TRANSACTIONALİşlemsel kimlik bilgisi toplu gönderim yapamaz
400VALIDATION_FAILEDToplu gönderim başına maksimum alıcı sayısı (10.000) aşıldı
400INVALID_REQUESTscheduledAt 7 günden fazla ileride ("Cannot schedule email more than 7 days in advance")
400TEMPLATE_NOT_FOUNDtemplateId bu hesabın hiçbir aktif şablonunu adlandırmıyor (silinmiş bir şablon için de döndürülür)
400IP_POOL_NOT_FOUNDipPoolId bu hesaba atanmış hiçbir havuzu adlandırmıyor
422TEMPLATE_VARIABLE_MISSINGHer alıcı için bir {{placeholder}} değeri yok (yalnızca bazıları için yoksa onlar atlanır ve template_variable_missing: name nedeniyle rejectedRecipients içinde listelenir). Hiçbir şey kuyruğa alınmaz
400BATCH_SEND_FAILEDTüm alıcılar engellendi
429RATE_LIMIT_EXCEEDEDHız sınırı aşıldı (kimlik bilgisi başına değil, workspace/plan düzeyinde)
429QUOTA_EXCEEDEDAylık kota tükendi

POST /v1/transactional/send için belgelenen hesap doğrulama ve politika kodları (SENDING_BLOCKED, ACTION_REQUIRED, DAILY_LIMIT_EXCEEDED, MARKETING_PAUSED ve diğerleri) burada da geçerlidir.

Kısmi başarı mümkündür: bazı alıcılar kabul edilirken diğerleri reddedilebilir (örn. engelleme listesindeki adresler). Yanıttaki rejectedRecipients alanını kontrol edin.

Sonraki Adımlar

Bu sayfada