Ana içeriğe geç
MailLand

Geçiş rehberi

Mailgun'dan Mail.Land'e geçiş

SMTP ile gönderiyorsanız değişiklik bir sunucu adı ve bir paroladan ibarettir. messages API'sini kullanıyorsanız bu rehber her yaygın Mailgun alanını Mail.Land ile eşler ve kod değişikliği gerektirenleri listeler.

SMTP
# Before (Mailgun)
SMTP_HOST=smtp.mailgun.org
SMTP_PORT=587          # STARTTLS
SMTP_USER=<SMTP login of your sending domain>
SMTP_PASS=<SMTP password of that login>

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

Mail.Land'de Mailgun kavramları

Mail.Land'de Mailgun kavramları
MailgunMail.Land
Gönderim alan adıDoğrulanmış alan adı (SPF, DKIM, DMARC ve dönüş yolu)
API anahtarı ve alan adı gönderim anahtarlarıHer biri API veya SMTP ile, alan adlarıyla ve IP adresleriyle sınırlandırılabilen API anahtarları (kimlik bilgileri)
Alan adı başına SMTP kimlik bilgileriSMTP parolası olarak kullanılan aynı API anahtarı
Şablonlar (Handlebars){{name}} yer tutuculu şablonlar
Geri dönme, şikâyet ve abonelik iptali listeleriTürü ve kapsamı olan engelleme listeleri
Webhook'larHMAC-SHA256 ile imzalanan, webhook başına ayrı gizli anahtarlı webhook'lar
Yönlendirmeler (Routes)Gelen yönlendirmeleri

Doğru API anahtarlarını oluşturun

Bir Mail.Land anahtarının ön eki, modunu ve akışını gösterir. Her uygulama ve akış için bir anahtar oluşturun, üretim anahtarlarını test sistemlerinizden uzak tutun.

Doğru API anahtarlarını oluşturun
Ön ekNe için
ml_pet_Üretim, işlemsel: makbuzlar, parola sıfırlama, uyarılar. İstek başına en fazla 5 alıcı.
ml_pem_Üretim, pazarlama: send-batch ile bültenler ve toplu gönderimler, çağrı başına en fazla 10.000 alıcı.
ml_set_Sandbox, işlemsel: sandboxBehavior LogOnly (varsayılan) iken istekler kabul edilir ve kaydedilir ama hiçbir zaman teslim edilmez. Entegrasyon testleriniz için kullanın.

Her anahtar API'ye, SMTP'ye veya ikisine, seçili alan adlarına ve bilinen IP adreslerine sınırlandırılabilir. Anahtar bir kez gösterilir; Mail.Land yalnızca karmasını (hash) saklar.

API anahtarları belgeleri

SMTP'yi değiştirin: sunucuyu ve parolayı güncelleyin

Mailgun, gönderim alan adı başına bir SMTP oturum adı kullanır. Mail.Land ise API anahtarınızı parola olarak kullanır ve kullanıcı adını yok sayar.

SMTP'yi değiştirin: sunucuyu ve parolayı güncelleyin
AyarMailgunMail.Land
Sunucusmtp.mailgun.orgsmtp.mail.land
PortSTARTTLS ile 25, 587 veya 2525 ya da TLS ile 465STARTTLS ile 587
Kullanıcı adıGönderim alan adınızın SMTP oturum adıHerhangi bir değer, örneğin apikey
ParolaO SMTP oturum adının parolasıSMTP'si etkin bir Mail.Land API anahtarı (işlemsel e-posta için ml_pet_)

Mail.Land oturum açmayı yalnızca STARTTLS'ten sonra kabul eder ve 465 portu sunulmaz. Uygulamanız 465 kullanıyorsa STARTTLS ile 587'ye geçirin. Mesajlar 15 MiB'a kadar olabilir.

SMTP rölesi belgeleri

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

Mailgun, HTTP Basic kimlik doğrulamasıyla form alanları alır. Mail.Land, X-API-Key başlığıyla bir JSON gövdesi alır. İşte her iki API'de aynı mesaj ve bir toplu gönderim.

curl -s --user "api:$MAILGUN_API_KEY" \
  https://api.mailgun.net/v3/yourdomain.com/messages \
  -F from="Your Shop <[email protected]>" \
  -F to="Jane <[email protected]>" \
  -F subject="Order 12345 has shipped" \
  -F text="Your order is on its way." \
  -F html="<p>Your order is on its way.</p>" \
  -F h:Reply-To="[email protected]" \
  -F o:tag="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 '{
    "from": { "email": "[email protected]", "name": "Your Shop" },
    "to": [{
      "email": "[email protected]", "name": "Jane",
      "variables": { "orderNumber": "12345" }
    }],
    "replyTo": "[email protected]",
    "subject": "Order {{orderNumber}} has shipped",
    "textContent": "Your order {{orderNumber}} is on its way.",
    "htmlContent": "<p>Your order {{orderNumber}} is on its way.</p>",
    "tags": ["order-shipped"]
  }'
# MAILLAND_API_KEY=ml_pet_...  (production, transactional)

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

POST /v3/<domain>/messages'tan POST /v1/transactional/send'e.

Gönderim çağrısı için alan eşlemesi
MailgunMail.LandNot
--user api:<key> (Basic kimlik doğrulaması)X-API-Key: <key>Basic kimlik doğrulaması yerine bir başlık, form alanları yerine JSON gövdesi.
fromfrom.email, from.nameGörünen adı adresten ayırın. Adres doğrulanmış bir alan adında olmalıdır.
toto[].email, to[].nameİşlemsel anahtarla istek başına en fazla 5 alıcı; her biri ayrı bir kopya alır.
cc, bccYokDesteklenmez. Her alıcıya ayrı bir mesaj gönderin.
subjectsubjectŞablon kullanmıyorsanız zorunludur.
texttextContent
htmlhtmlContent
amp-htmlYokAMP bölümü yoktur.
template, t:versiontemplateIdÖnce şablonu Mail.Land'de yeniden oluşturun. Şablonların sürümü yoktur.
t:variablesvariablesTüm alıcılar için ortak değerler; JSON dizesi yerine JSON nesnesi olarak.
v:<name> (metadata)tagsMail.Land'de olaylarda anahtar-değer meta verisi yoktur. Bir tanımlayıcıyı tags içinde veya özel bir başlıkta taşıyın.
recipient-variablesto[].variablesAlıcı başına değerler. 5'ten fazla alıcı için pazarlama anahtarıyla send-batch ve recipients[].variables kullanın.
o:tagtagsDizelerden oluşan bir dizi.
h:<Header-Name>customHeadersBaşlık adları ve değerlerinden oluşan bir nesne.
h:Reply-ToreplyToSade bir adres dizesi.
attachment, inlineattachments[].fileName, contentType, content, contentId, inlineMultipart dosyalar yerine JSON içinde Base64 içerik. En fazla 10 ek ve toplam 10 MiB.
o:deliverytimescheduledAtISO 8601 biçiminde UTC tarih ve saat, 7 güne kadar ileri.
o:tracking-opens, o:tracking-clickstracking.opens, tracking.clicksBoolean değerler. Alan adının açılma izleme tercihi önceliklidir.
Karşılığı yokX-Idempotency-Key başlığıSaklama süresi içinde aynı anahtarla yapılan yeniden deneme, yeniden göndermek yerine özgün yanıtı döndürür.

Mail.Land; bir jobId, kabul edilen her alıcı için bir mesaj kimliği ve kabul edilen ile reddedilen alıcıların listeleriyle 202 Accepted yanıtı verir.

REST API belgeleri

Alan adınızı ve DNS kayıtlarını ekleyin

Alan adını Mail.Land'e ekleyin ve panelin gösterdiği kayıtları yayımlayın. Gönderebilmek için SPF, DKIM ve DMARC'nin doğrulanması gerekir. Bunu Mailgun hâlâ gönderim yaparken yapabilirsiniz.

Alan adınızı ve DNS kayıtlarını ekleyin
KayıtAdDeğerNot
SPF (TXT)yourdomain.cominclude:spf.mlnd.netinclude'u mevcut SPF kaydınıza ekleyin. Bir alan adının yalnızca bir SPF kaydı olmalıdır.
DKIM (TXT)mlnd._domainkey.yourdomain.comv=DKIM1; k=rsa; p=...Seçici (selector) mlnd olduğundan kayıt, Mailgun'ın DKIM kaydının yanında durur.
DMARC (TXT)_dmarc.yourdomain.comv=DMARC1; p=...Zorunludur. Tek bir DMARC kaydı tutun; politikası olan mevcut bir kayıt yeterlidir.
Dönüş yolu (CNAME)bounce.yourdomain.combounce.mlnd.netDNS only olarak, proxy olmadan ayarlayın. Bu adın zaten kullanılmadığını kontrol edin.

Mailgun'ın DNS kayıtlarını taşıma bitene kadar koruyun ve yalnızca son mesajı gittikten sonra kaldırın.

DNS kurulumu belgeleri

Önce engelleme listelerinizi aktarın

Mailgun geri dönmeleri, şikâyetleri ve abonelik iptallerini her gönderim alan adı için ayrı tutar; bu nedenle gönderim yaptığınız her alan adının listelerini, örneğin GET /v3/<domain>/bounces ile dışa aktarın. Ardından her listeyi uygun tür ve kapsamla, panelde veya POST /v1/transactional/suppressions/import ile Mail.Land'e aktarın.

Önce engelleme listelerinizi aktarın
Mailgun listesiMail.Land türüKapsam
Geri dönmeler (Bounces)HardBounceGlobal
Şikâyetler (Complaints)ComplaintGlobal
Abonelik iptalleri (tüm e-postalar)UnsubscribeGlobal
Bir etiket veya posta listesi için abonelik iptalleriUnsubscribeMarketing; ya da yalnızca eşleşen Mail.Land posta listesine gönderilen kampanyalara uygulanan List

Mail.Land üzerinden ilk gönderimden önce aktarın; böylece aboneliğini iptal edenler baştan engelli kalır. Zaten var olan adresler atlanır, çoğaltılmaz.

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ı doğrulayın. Mailgun bir zaman damgasını ve belirteci hesap genelindeki tek bir anahtarla imzalar; Mail.Land ise zaman damgasını ve ham gövdeyi webhook başına bir gizli anahtarla imzalar. Bu nedenle doğrulama kodunuzu da güncelleyin.

Webhook'larınızı Mail.Land'e yönlendirin
Mailgun olayıMail.Land olayıNot
acceptedŞimdilik yokmessage.sent henüz kullanılamıyor; 202 yanıtı kabulü doğrular.
deliveredmessage.delivered
temporary_failmessage.deferred
permanent_failmessage.bouncedAlıcı sunucunun reddi. message.failed ise Mail.Land tarafındaki bir durdurmayı bildirir.
complainedmessage.complained
unsubscribedmessage.unsubscribedAlıcının kendi abonelik iptali için gönderilir; API üzerinden yaptığınız değişiklikler için gönderilmez.
opened, clickedHenüz yokAçılma ve tıklama olayları katalogda yer alır ama bugün gönderilmez.

event_id'ye göre yinelenenleri ayıklayın; yeniden denenen teslimat aynı olay kimliğini taşır. Bir durum sonradan düzeltilebilir; bu yüzden son bir olaydan sonra da olayları işlemeye devam edin ve status_version'ı karşılaştırın.

Webhook olayları

Webhook imzası doğrulama

Şablonlarınızı yeniden oluşturun

Her şablonu Mail.Land panelinde veya şablon API'siyle oluşturun, ardından templateId ve variables ile gönderin. Her yer tutucunun bir değeri olmalıdır; yoksa gönderim 422 koduyla ve eksik adlarla reddedilir.

Şablonlarınızı yeniden oluşturun
MailgunMail.Land
{{firstName}}{{firstName}}
%recipient.firstName%{{firstName}}
{{#if}}, {{#unless}}, {{#each}}, {{#with}}, {{#equal}}Yok
Şablon sürümleri (t:version)Yok

Mail.Land yer tutucuları sadedir: koşul, döngü, filtre veya partial yoktur. Bu mantığı uygulamanıza taşıyın veya her varyant için bir şablon tutun.

Şablon belgeleri

Adım adım geçiş

  1. Gönderim alan adınızı Mail.Land'e ekleyip doğrulayın ve include:spf.mlnd.net'i mevcut SPF kaydınıza ekleyin.
  2. Her Mailgun alan adının engelleme listelerini dışa aktarıp içe aktarın.
  3. Şablonlarınızı ve webhook'larınızı yeniden oluşturun.
  4. sandboxBehavior LogOnly olan bir sandbox anahtarı oluşturun ve entegrasyon testlerinizi e-posta teslim etmeden Mail.Land'e karşı çalıştırın.
  5. Denetiminizdeki adreslere gerçek mesajlar gönderin ve e-posta günlüğünde kontrol edin.
  6. 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.
  7. İki sağlayıcı birlikte çalışırken abonelik iptallerini iki yönde senkron tutun: yeni abonelik iptallerini, şikâyetleri ve geri dönmeleri Mailgun'dan Mail.Land'e ve Mail.Land'den Mailgun'a kopyalayın; kalan trafiği taşımadan önce son bir senkronizasyon yapın.
  8. Alan adınızın ısınma sürecini kontrol edin: Free ve Pro'da yeni bir alan adının aşamalarla artan bir günlük sınırı vardır ve bu sınırı aşan gönderimler reddedilir. Geçişi bu sınırlar içinde planlayın veya bize özel bir takvim sorun. Max'te ısınma aşaması yoktur.
  9. Ardından kalanını taşıyın ve Mailgun'ı son zamanlanmış ve yeniden denenen mesajları gidene kadar etkin tutun.

Mail.Land ile Mailgun: kaynaklı karşılaştırma

Kaynaklar

Bu rehberde kullanılan Mailgun'ın herkese açık sayfaları.

  1. [1]Mailgun API: mesaj göndermehttps://documentation.mailgun.com/docs/mailgun/api-reference/send/mailgun/messages/post-v3--domain-name--messages4 Kasım 2026 tarihinde kontrol edildi
  2. [2]Mailgun API: kimlik doğrulamahttps://documentation.mailgun.com/docs/mailgun/api-reference/authentication4 Kasım 2026 tarihinde kontrol edildi
  3. [3]Mailgun: SMTP ile gönderimhttps://documentation.mailgun.com/docs/mailgun/user-manual/sending-messages/send-smtp4 Kasım 2026 tarihinde kontrol edildi
  4. [4]Mailgun: şablonlarla gönderimhttps://documentation.mailgun.com/docs/mailgun/user-manual/sending-messages/send-templates4 Kasım 2026 tarihinde kontrol edildi
  5. [5]Mailgun: webhook'larhttps://documentation.mailgun.com/docs/mailgun/user-manual/webhooks/webhooks4 Kasım 2026 tarihinde kontrol edildi
  6. [6]Mailgun: webhook'ları güvenceye almahttps://documentation.mailgun.com/docs/mailgun/user-manual/webhooks/securing-webhooks4 Kasım 2026 tarihinde kontrol edildi
  7. [7]Mailgun API: geri dönmelerhttps://documentation.mailgun.com/docs/mailgun/api-reference/send/mailgun/bounces/get-v3--domainid--bounces4 Kasım 2026 tarihinde kontrol edildi

Sık sorulan sorular

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

Evet. Bir alan adını Mail.Land'de doğrulamak, Mailgun'ın o alan adı için göndermesini durdurmaz; ikisini birlikte çalıştırıp trafiği kademeli olarak taşıyabilirsiniz.

Mailgun ABD veya AB bölgesi seçmeme izin veriyor. Mail.Land nerede çalışıyor?

Mail.Land'de seçilecek bölge yoktur. Verilerinizin birincil kopyası Almanya'dadır; AB dışındaki sağlayıcılar GDPR sayfamızda listelenir.

Aynı anda çok sayıda alıcıya nasıl gönderirim?

Bir pazarlama anahtarıyla (ml_pem_) POST /v1/transactional/send-batch kullanın. Her biri kendi değişkenleriyle 10.000 alıcıya kadar kabul eder. İşlemsel anahtar istek başına en fazla 5 alıcı kabul eder.

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

Henüz yok. Belgelerde REST API için cURL, Node.js, Python, PHP, C#, Java ve Go'da kopyalanmaya hazır örnekler var ve her SMTP kütüphanesi röleyle çalışır.

Mailgun'dan 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.