Ana içeriğe geç
MailLand

Geçiş kılavuzu

SendGrid'den Mail.Land'e geçiş

Değişiklik çoğu zaman tek bir SMTP sunucusundan veya tek bir API çağrısından ibarettir. Bu kılavuz, yaygın SendGrid alanlarını Mail.Land ile eşleştirir ve kod değişikliği gerektiren farkları listeler.

SMTP
# Before (SendGrid)
SMTP_HOST=smtp.sendgrid.net
SMTP_PORT=587
SMTP_USER=apikey
SMTP_PASS=<your SendGrid API key>

# After (Mail.Land)
SMTP_HOST=smtp.mail.land
SMTP_PORT=587          # STARTTLS
SMTP_USER=apikey       # any value; Mail.Land ignores it
SMTP_PASS=<your Mail.Land API key with SMTP enabled>

Mail.Land'de SendGrid kavramları

Mail.Land'de SendGrid kavramları
SendGridMail.Land
API anahtarıAPI, SMTP, alan adları ve IP adresleriyle sınırlandırılabilen API anahtarı (kimlik bilgisi)
Gönderen kimlik doğrulamasıAlan adı doğrulaması (SPF, DKIM, DMARC ve return-path)
Dinamik şablonlar{{name}} yer tutuculu şablonlar
Engelleme listeleri ve abonelikten çıkma gruplarıKapsamlı engelleme kayıtları: tüm e-postalar, yalnızca pazarlama veya tek bir posta listesi
Event WebhookHMAC-SHA256 ile imzalanan webhook'lar
Inbound ParseGelen e-posta rotaları

SMTP'yi değiştirin: üç ayarı güncelleyin

SMTP üzerinden gönderim yapıyorsanız sunucuyu, portu ve parolayı değiştirin. Kullanıcı adı apikey olarak kalabilir; çünkü Mail.Land bunu dikkate almaz ve kimlik doğrulamayı yalnızca anahtarla yapar.

SMTP'yi değiştirin: üç ayarı güncelleyin
AyarSendGridMail.Land
Sunucusmtp.sendgrid.netsmtp.mail.land
Port25, 587 veya 2525 (TLS) ya da 465 (SSL)STARTTLS ile 587
Kullanıcı adıapikeyHerhangi bir değer, örneğin apikey
ParolaSendGrid API anahtarınızSMTP'si etkinleştirilmiş bir Mail.Land API anahtarı

Mail.Land, oturum açmayı yalnızca STARTTLS'ten sonra kabul eder ve 465 portu sunulmaz. Uygulamanız 465 portunu kullanıyorsa STARTTLS ile 587 portuna geçirin.

SMTP rölesi belgeleri

API çağrısını değiştirin

Mail.Land gönderim çağrısı daha düz bir JSON gövdesi ve X-API-Key başlığı kullanır. Aynı ileti her iki API'de şöyle görünür.

curl -X POST https://api.sendgrid.com/v3/mail/send \
  -H "Authorization: Bearer $SENDGRID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "personalizations": [{
      "to": [{ "email": "[email protected]", "name": "Jane" }],
      "dynamic_template_data": { "orderNumber": "12345" }
    }],
    "from": { "email": "[email protected]", "name": "Your Shop" },
    "reply_to": { "email": "[email protected]" },
    "subject": "Order 12345 has shipped",
    "content": [
      { "type": "text/plain", "value": "Your order is on its way." },
      { "type": "text/html", "value": "<p>Your order is on its way.</p>" }
    ],
    "categories": ["order-shipped"]
  }'
curl -X POST https://api.mail.land/v1/transactional/send \
  -H "X-API-Key: $MAILLAND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": [{
      "email": "[email protected]", "name": "Jane",
      "variables": { "orderNumber": "12345" }
    }],
    "from": { "email": "[email protected]", "name": "Your Shop" },
    "replyTo": "[email protected]",
    "subject": "Order 12345 has shipped",
    "textContent": "Your order is on its way.",
    "htmlContent": "<p>Your order is on its way.</p>",
    "tags": ["order-shipped"]
  }'

Gönderim çağrısı için alan eşleştirmesi

POST /v3/mail/send çağrısından POST /v1/transactional/send çağrısına.

Gönderim çağrısı için alan eşleştirmesi
SendGridMail.LandNot
Authorization: Bearer <key>X-API-Key: <key>Farklı bir başlık.
from.email, from.namefrom.email, from.nameAdres, doğrulanmış bir alan adına ait olmalıdır.
personalizations[].to[]to[]İşlemsel bir anahtarla istek başına en fazla 5 alıcı. Toplu gönderim için bir pazarlama anahtarıyla toplu (batch) gönderimi kullanın.
personalizations[].cc, bccKarşılığı yokDesteklenmez. Her alıcıya ayrı bir ileti gönderin.
personalizations[].dynamic_template_datato[].variablesAlıcı başına değerler. Tüm alıcılar için ortak olan değerler için üst düzeydeki variables alanını kullanın.
subjectsubjectŞablon kullanmıyorsanız zorunludur.
content[] (text/html)htmlContent
content[] (text/plain)textContent
template_idtemplateIdÖnce şablonu Mail.Land'de yeniden oluşturun; kimlik (ID) değişir.
reply_to.emailreplyToDüz bir adres dizesi.
categories, custom_argstagsEtiketler analitikte ve webhook olaylarında görünür.
headerscustomHeaders
attachments[].content, filename, typeattachments[].content, fileName, contentTypeBase64 içerik. En fazla 10 ek ve toplamda 10 MiB.
attachments[].disposition, content_idattachments[].inline, contentIdSatır içi görsel için inline: true.
send_at (Unix zamanı, en fazla 72 saat sonrası)scheduledAt (UTC tarih ve saat, en fazla 7 gün sonrası)
tracking_settings (open, click)tracking.opens, tracking.clicksAçılmalar için alan adının kendi takip ayarları önceliklidir.
asm.group_idGönderim çağrısında karşılığı yokPazarlama abonelikten çıkmaları Mail.Land listeleri ve kampanyalarıyla yönetilir. Mevcut grup abonelikten çıkmalarını içe aktarın, aşağıya bakın.
Karşılığı yokX-Idempotency-Key başlığıSaklama süresi içinde, aynı anahtarla yapılan bir yeniden deneme, yeniden gönderim yapmak yerine ilk yanıtı döndürür.

Her iki API de 202 Accepted ile yanıt verir. Mail.Land'in yanıt gövdesi bir jobId, alıcı başına bir mesaj kimliği ve kabul edilen ve reddedilen alıcıların listelerini içerir.

REST API belgeleri

Önce engelleme listelerinizi içe aktarın

Abonelikten çıkan veya şikâyette bulunan kişilerin başından itibaren engelli kalması için, Mail.Land üzerinden ilk gönderiminizden önce içe aktarın. Her listeyi SendGrid'den CSV olarak dışa aktarın, ardından kontrol panelinde veya POST /v1/transactional/suppressions/import ile uygun tür ve kapsamla içe aktarın.

Önce engelleme listelerinizi içe aktarın
SendGrid listesiMail.Land türüKapsam
BouncesHardBounceGlobal
Spam ReportsComplaintGlobal
Invalid EmailsInvalidGlobal
Global UnsubscribesUnsubscribeGlobal
Group UnsubscribesUnsubscribeList, eşleşen Mail.Land posta listesi için; Marketing tüm pazarlama e-postalarını engeller

SendGrid'deki blocks kayıtları genellikle geçici reddetmelerdir. Hepsini engellemek yerine içe aktarmadan önce gözden geçirin.

Engelleme listesi belgeleri

Webhook'larınızı Mail.Land'e yönlendirin

Uç noktanızı Mail.Land'e ekleyin, olayları seçin ve X-MLND-Signature başlığını webhook'unuzun gizli anahtarıyla doğrulayın. Olay adları SendGrid'dekilerden farklıdır; bu nedenle işleyicinizi güncelleyin:

Webhook'larınızı Mail.Land'e yönlendirin
SendGrid olayıMail.Land olayı
deliveredmessage.delivered
deferredmessage.deferred
bouncemessage.bounced
open, clickHenüz yok
spamreportmessage.complained
unsubscribemessage.unsubscribed

Yinelenenleri event_id alanına göre ayıklayın: yeniden denenen bir teslimat aynı olay kimliğini taşır. SendGrid'in open ve click olaylarının bugün Mail.Land'de karşılığı olan bir webhook'u yok: açılma ve tıklama olayları katalogda yer alır ama gönderilmez.

Webhook imzası doğrulama

Adım adım geçiş

  1. Gönderim alan adınızı Mail.Land'e ekleyin ve doğrulayın. SendGrid kayıtlarınızı koruyun: ikinci bir SPF kaydı oluşturmak yerine mevcut SPF kaydınıza include:spf.mlnd.net ekleyin ve tek bir DMARC kaydı bulundurun.
  2. Engelleme listelerinizi içe aktarın.
  3. Yalnızca günlüğe kaydedecek şekilde ayarlanmış bir sandbox anahtarı oluşturun ve entegrasyon testlerinizi e-posta teslim etmeden Mail.Land'e karşı çalıştırın.
  4. Kontrolünüzdeki adreslere gerçek iletiler gönderin ve bunları e-posta günlüğünde kontrol edin.
  5. Bir uygulamayı veya trafiğin küçük bir bölümünü taşıyın, ardından teslimatı, geri dönmeleri ve şikâyetleri izleyin.
  6. Her iki sağlayıcı da çalışırken yeni abonelikten çıkmaları, şikâyetleri ve geri dönmeleri SendGrid'den Mail.Land'e aktarın ve son trafiği taşımadan önce son bir eşitleme yapın.
  7. Geri kalanını taşıyın ve son planlanmış ve yeniden denenen iletileri gönderilene kadar SendGrid'i etkin tutun.

Sık sorulan sorular

Test ederken SendGrid üzerinden göndermeye devam edebilir miyim?

Evet. Bir alan adını Mail.Land'de doğrulamak, SendGrid'in o alan adı için gönderim yapmasını durdurmaz; böylece ikisini birlikte çalıştırabilir ve trafiği kademeli olarak taşıyabilirsiniz.

Mail.Land cc ve bcc'yi destekliyor mu?

Gönderim çağrısında desteklemez. Bunun yerine her alıcıya ayrı bir ileti gönderin.

Resmi bir Mail.Land SDK'sı var mı?

Henüz yok. Belgelerde REST API için sekiz dilde kopyalayıp yapıştırabileceğiniz örnekler bulunur ve herhangi bir SMTP kütüphanesi röleyle çalışır.

Abonelikten çıkma gruplarıma ne olur?

Her grubun abonelikten çıkmalarını, eşleşen Mail.Land posta listesi için List kapsamıyla içe aktarın ve tercihin uygulanması için o listeye gönderim yapın. Marketing kapsamı daha geniş bir yedek seçenektir: o adrese giden tüm pazarlama e-postalarını engeller.

SendGrid'den geçmeye hazır mısınız?

Ücretsiz bir hesap oluşturun ve ilk testinizi bugün gönderin. Yardım isterseniz kurulumunuzu bize anlatın.