Belgelere geç
Bilgi bankası

SendGrid'den taşının

SendGrid SDK'sını koruyun ve OpenEmail üzerinden gönderin. Temel URL'sini ve anahtarını değiştirin, gönderim kodunuz olduğu gibi kalır.

Neyi değiştirmeli

SDK'yı https://api.openemail.uk/compat/sendgrid adresine yönlendirin ve ona SendGrid anahtarı yerine emails:send iznine sahip bir OpenEmail API anahtarı verin. Anahtar aynı Authorization: Bearer başlığında gider. Posta gönderen çağrılarınız olduğu gibi kalır ve bir iletinin çıkıp çıkamayacağına, OpenEmail'in her yerinde olduğu gibi From adresi karar verir.

import sgMail from '@sendgrid/mail'import client from '@sendgrid/client' client.setApiKey(process.env.OPENEMAIL_API_KEY)client.setDefaultRequest('baseUrl', 'https://api.openemail.uk/compat/sendgrid')sgMail.setClient(client) await sgMail.send({  from: '[email protected]',  to: '[email protected]',  subject: 'Your invoice',  html: '<p>Your invoice is attached.</p>',})

Node'da önce anahtarı istemcide, sonra temel URL'yi ayarlayın, ardından istemciyi posta paketine verin. Bundan sonra sgMail.setApiKey çağırmayın, çünkü temel URL'yi SendGrid'e geri alır. SDK, anahtarın SG. ile başlamadığını söyleyerek uyarır, bu zararsızdır. Python, Ruby ve PHP'de host'u sonda eğik çizgi olmadan verin.

Ne neye karşılık gelir

Sunulan uç nokta POST /v3/mail/send. personalizations içindeki her giriş kendi kimliğiyle ayrı bir OpenEmail iletisi olur, bu yüzden bir istek en fazla 100 ileti gönderir.

SendGridOpenEmail'de
fromGönderen, adıyla birlikte. Bir kişiselleştirme kendi from değerini verebilir.
personalizationsHer biri bir ileti. to, cc ve bcc alanları toplam 50 alıcıya kadar tutar, subject, headers, custom_args, send_at ve substitutions ise yalnızca o iletiye uygulanır.
subjectKonu, bir kişiselleştirme kendi konusunu koymadıkça.
contenttext/plain metin gövdesi, text/html HTML gövdesi olur. HTML gövdesi iletiyi zaten taşıdığı için text/x-amp-html dışarıda bırakılır.
attachmentsDosyalar, en fazla 20 ve toplam 5 MB. content_id değerini HTML'in cid: olarak kullandığı satır içi görsel, göründüğü yere gömülür. Diğer satır içi dosyalar sıradan ek olarak gelir.
reply_toYanıt adresi. reply_to_list de tek bir adres tuttuğu sürece çalışır.
headersÖzel başlıklar: X-*, List-*, Reply-To, Precedence, Auto-Submitted, Importance, Priority ve Feedback-ID. Bir kişiselleştirme kendi başlıklarını ekler.
categoriescategory, category_2 ve devamı adlı etiketler, her biri bir kategori tutar.
custom_argsAynı ad ve değerlere sahip etiketler. Bir kişiselleştirmenin değerleri önceliklidir.
send_atPlanlı bir gönderim, bir yıla kadar ileri. Geçmişte kalmış bir zaman hemen gönderir.
substitutionsHer anahtar, o iletinin konusunda, metin gövdesinde ve HTML gövdesinde kendi değeriyle değiştirilir.
template_idBir OpenEmail şablonunun kimliği (tpl_...) ya da slug'ı, dynamic_template_data ile doldurulur.
tracking_settingsopen_tracking.enable ve click_tracking.enable, ileti için açılma ve tıklama takibini açar ya da kapatır.
mail_settingssandbox_mode.enable isteği, göndereni ve şablonu denetler, ardından hiçbir şey göndermeden 200 ile yanıt verir.

Bir ileti, kategoriler ve custom_args birlikte sayıldığında en fazla 10 etiket taşır. Daha fazlasını gerektiren istek kırpılmak yerine reddedilir, böylece gönderdiğiniz hiçbir şey sessizce kaybolmaz.

Neler reddedilir ve neden

  • template_id içinde d-… gibi bir SendGrid şablon kimliği. Şablonlar SendGrid'de kalır, bu yüzden şablonu OpenEmail'de yeniden oluşturun ve onun kimliğini ya da slug'ını gönderin.
  • template_id ile birlikte content, çünkü bir OpenEmail şablonu gövdenin tamamını sağlar. Aynı nedenle şablonla birlikte substitutions: değerleri dynamic_template_data içinde geçirin.
  • Birden fazla yanıt adresi, birlikte reply_to ve reply_to_list, metin ve HTML dışındaki içerik türleri. Takvim davetini .ics eki olarak gönderin.
  • Açık mail_settings.footer ve sections, çünkü OpenEmail iletinize kendisi metin yazmaz.
  • 10'dan fazla etiket, harf, rakam, _ ve - dışında karakter içeren bir etiket adı, yukarıdaki listenin dışında bir başlık ve tek istekte 100'den fazla kişiselleştirme.

asm, batch_id, ip_pool_name, mail_settings içindeki atlama ayarları, subscription_tracking, ganalytics, click_tracking.enable_text ve open_tracking.substitution_tag kabul edilir ve hiçbir şeyi değiştirmez. Çalışma alanının engelleme listesindeki adresler, bir atlama ayarı ne derse desin her zaman atlanır.

Yanıtlar ve hatalar

  • Bir gönderim boş bir gövdeyle ve X-Message-Id içinde OpenEmail ileti kimliğiyle 202 yanıtı verir, bu kimliği GET /emails/{id} ve webhook'lar da kullanır. Birden çok kişiselleştirmede ilk iletinin kimliğini taşır. Idempotency-Key başlığı API'nin geri kalanındaki gibi çalışır.
  • Hatalar errors olarak döner, yani message, field ve help içeren bir liste: gönderilemeyen bir istek için 400, eksik ya da bilinmeyen bir anahtar için 401, emails:send izni olmayan bir anahtar ya da anahtarın kullanamadığı veya alan adı henüz gönderemeyen bir From adresi için 403, 30 MB'ı aşan bir gövde ya da 5 MB'ı aşan ekler için 413 ve çalışma alanı gönderim kotasını tükettiğinde 429.
  • Önceki kişiselleştirmeler kabul edildikten sonra biri başarısız olursa hata, zaten gönderilen iletileri belirtir, böylece yeniden deneme onları dışarıda bırakabilir.