İki sunucu arasında e-posta gönderildiğinde arka planda sessizce çalışan bir mekanizma vardır. Gönderen sunucu mesajı doğrudan hedefe iletmez; önce "Bu domain adına posta kabul eden sunucu hangisi?" diye sorar. Bu sorunun cevabı MX kaydında yatar.
Mail Exchanger (Posta Değiştiricisi) olarak açılan MX, bir domain için gelen e-posta trafiğini üstlenecek sunucuyu tanımlayan DNS kayıt türüdür. Web trafiği için A kaydı ne ise, e-posta trafiği için MX kaydı da odur — ancak ikisi arasında kritik yapısal farklar bulunur ve bu farklar zaman zaman konfigürasyon hatalarının kaynağı olur.
MX kaydının nasıl çalıştığını, priority değerinin ne anlama geldiğini ve yapılandırma sırasında dikkat edilmesi gereken noktaları aşağıda ele alıyoruz.
MX kaydının e-posta yönlendirmesindeki rolü
Birisi ad@example.com adresine mail gönderdiğinde gönderen sunucu ilk iş olarak DNS'e bir MX sorgusu yapar. A kaydı değil, özellikle MX kaydı ister. Dönen cevapta posta sunucusunun hostname'i bulunur — örneğin mail.example.com gibi. Gönderen sunucu bu hostname'in A kaydını ikinci bir sorguyla çözer ve asıl IP adresine ulaşır. Ardından SMTP bağlantısını port 25 üzerinden kurar.
Burada önemli bir ayrım var: MX kaydının target değeri bir hostname olmak zorundadır, IP adresi değil. RFC 5321 bu noktayı açıkça tanımlar. Gönderen sunucu IP yerine hostname beklediğinden, target olarak doğrudan bir IP yazmak teknik olarak geçersizdir ve çoğu posta sunucusu bu konfigürasyonu reddeder.
MX kaydı yoksa ne olur? Bazı posta sunucuları MX kaydı bulunmayan bir domain için A kaydına fallback yaparak teslimatı dener. Ancak bu davranış garanti değildir ve günümüz spam filtrelerinde doğrudan A kaydına düşen trafik zaman zaman şüpheyle karşılanır. Herhangi bir domain üzerinde e-posta alınması planlanıyorsa MX kaydı zorunlu olarak tanımlanmalıdır.
Priority değeri: çoklu MX kayıtları nasıl çalışır?
Bir domain için birden fazla MX kaydı tanımlanabilir. Her kayıtta sayısal bir priority (öncelik) değeri bulunur. Gönderen sunucu önce en düşük sayıyla başlar; sayı ne kadar küçükse öncelik o kadar yüksektir. 10 değerli sunucu, 20 değerli sunucudan önce denenir.
Priority değerlerinin özel bir anlamı yoktur, yalnızca göreli sıralamaları önemlidir. 1 ile 100 kullanmak da, 10 ile 20 kullanmak da aynı mantıkla çalışır. Birincil sunucuya ulaşılamazsa gönderen sunucu bir sonraki priority değerine geçer ve teslimatı yeniden dener. Bu mekanizma sayesinde mail teslimi tek sunucu arızasına karşı dayanıklı hale gelir.
Aynı priority değerini taşıyan birden fazla MX kaydı da mümkündür. Bu durumda gönderen sunucu hangi kaydı kullanacağını rastgele seçer; bu yük dengeleme amacıyla bilinçli olarak tercih edilen bir yapıdır. Örneğin iki posta sunucusu her ikisi de 10 değerine sahipse gelen trafik bu sunucular arasında dağıtılır.
Yedekleme amacıyla kurulan yapılarda yaygın bir düzen şöyledir: birincil sunucu 10, yedek sunucu 20 ya da 30 değeri alır. Birincil devre dışı kaldığında yedek otomatik devreye girer ve posta kuyruğu düşmez. Büyük e-posta sağlayıcılarının yapılandırmalarına bakıldığında genellikle 3-5 arasında MX kaydı görülür; bir kısmı yük dengeleme, bir kısmı yedekleme amacı taşır.
MX kaydı nasıl yapılandırılır?
DNS yönetim panelinde yeni bir MX kaydı eklenirken doldurulması gereken temel alanlar şunlardır: kayıt türü (MX), host (genellikle @ ya da alan adının kendisi), priority değeri ve target hostname.
Target hostname her zaman tam nitelikli domain adı (FQDN) olmalıdır. DNS paneline giriş formatı panele göre değişir: bazı paneller trailing nokta ister (mail.example.com. gibi), bazıları istemez. Panelin beklentisini dikkate almak gerekir; aksi halde kayıt yanlış çözümlenebilir ya da hiç yayınlanmayabilir.
TTL değeri de konfigürasyonun bir parçasıdır. Varsayılan TTL genellikle 3600 saniyedir. MX kaydında bir değişiklik planlandığında — örneğin e-posta sağlayıcısı taşınıyorsa — değişiklikten birkaç saat önce TTL'yi 300-600 saniyeye düşürmek, eski kaydın önbelleğe alınma süresini kısaltır. Değişiklik tamamlandıktan sonra TTL normal değerine geri alınabilir.
Değişiklik sonrası DNS kayıt türlerinin propagation davranışı da göz önünde bulundurulmalıdır: dünya genelindeki resolver'lar eski kaydı TTL süresi dolana kadar önbellekte tutmaya devam eder. Bu nedenle anlık etki beklemek doğru değildir; özellikle yüksek TTL'li ortamlarda taşıma süreci saatler alabilir.
Yaygın MX yapılandırma hataları
MX kaydında en sık karşılaşılan hata target olarak IP adresi girmektir. RFC 5321'e göre bu kullanım geçersizdir; bazı sunucular bu konfigürasyonu yok sayar, bazıları ise gönderimi hata döndürerek reddeder. Target her koşulda bir hostname olmalıdır.
İkinci yaygın hata CNAME zinciridir. MX kaydının target'ı CNAME'e işaret edemez. RFC 2181 ve ilgili spesifikasyonlar bu kombinasyonu açıkça yasaklar. Bazı DNS panelleri bunu önleyecek şekilde konfigüre edilmiştir; ama bazı paneller uyarı vermez. Sonuç olarak posta teslimi tamamen durabilir ya da öngörülemeyen davranışlar gözlemlenebilir.
Üçüncü hata birincil ve yedek MX kayıtlarına aynı priority değerini vermektir. Yedekleme kuruyorsanız değerlerin farklı olması gerekir. İki sunucuya da 10 verirseniz sistem birincil-yedek mantığıyla değil yük dengeleme mantığıyla çalışır; birincil sunucu çökse bile trafik onu çağırmaya devam eder.
Son olarak MX kaydının target hostname'ini tanımlayıp o hostname'in A kaydını unutmak da sık rastlanan bir hatadır. Gönderen sunucu MX sorgusundan mail.example.com adresini alır; ardından bu hostname'in IP'sini çözmek için A kaydını sorgular. Eğer A kaydı yoksa teslimat yine başarısız olur. MX target'ının A kaydı her zaman geçerli ve erişilebilir bir IP göstermelidir.
MX kaydını doğrulama yöntemleri
Yapılandırma tamamlandıktan sonra doğrulama kritik bir adımdır. Terminal üzerinden sorgu yapılabilir: nslookup -type=MX example.com komutu mevcut MX kayıtlarını ve priority değerlerini listeler. dig MX example.com komutu daha ayrıntılı çıktı sunar; ANSWER SECTION'da kayıtları görürsünüz.
Doğrulama için yalnızca kendi konumunuzdan değil, farklı DNS sunucularından da sorgu yapmak faydalıdır. Bir değişiklik yaptınız ve kendi tarafınızdan doğru görünüyor; ancak dünyanın başka bir yerindeki resolver henüz eski kaydı önbelleğinde taşıyor olabilir. Farklı DNS sunucularından eş zamanlı sorgu yaparak propagation durumunu takip edebilirsiniz.
SPF, DKIM ve DMARC kayıtları da MX ile birlikte çalışır. MX kaydı postanın nereye gideceğini belirlerken, SPF kaydı hangi sunucuların bu domain adına mail gönderebileceğini tanımlar. MX yapılandırmasını tamamladıktan sonra domain'in DNS kayıt bütününü incelemek, olası tutarsızlıkları önceden fark etmeyi kolaylaştırır.
MX kaydı e-posta altyapısının sessiz ama vazgeçilmez bir parçasıdır. Doğru kurulduğunda yıllarca sorunsuz çalışır; yanlış yapılandırıldığında ise sorunun kaynağını bulmak zaman alır. Priority değerinin yönü, target hostname'in A kaydının varlığı ve TTL yönetimi — bu üç nokta, büyük çoğunluğu kapsayan potansiyel sorunların önünü peşinen alır.