TXT ve SPF Kaydı Nedir?
E-postanın spam’e düşmesini önleyen doğrulama kayıtları; DKIM ve DMARC ile ilişkisi.
TXT kaydı, bir alan adına serbest metin bağlamaya yarayan DNS kaydı. Bugün en önemli kullanımı e-posta: SPF, alan adınız adına hangi sunucuların posta gönderebileceğini bir TXT kaydında listeliyor. DKIM ve DMARC de TXT kaydı olarak duruyor. Üçü eksik ya da hatalıysa gönderdiğiniz e-posta spam klasörüne düşüyor ya da hiç teslim edilmiyor.
Gelen postanın hangi sunucuya gideceğini MX kaydı belirliyor. Bu yazı öbür yönü anlatıyor: gönderdiğiniz postanın gerçekten sizden geldiğini karşı tarafa nasıl kanıtlarsınız.
TXT kaydı başka ne için kullanılıyor?
Kaydın içeriği yalnızca bir metin; anlamını onu okuyan servis veriyor. E-posta dışındaki yaygın kullanım alan adı doğrulaması: Search Console, e-posta ve ofis paketleri, SSL sağlayıcıları size rastgele bir dize verip onu TXT kaydı olarak eklemenizi istiyor. Kaydı yalnızca alan adının sahibi ekleyebildiği için dize görünür olduğunda sahiplik kanıtlanmış oluyor.
Bir alan adında aynı anda birden fazla TXT kaydı olabilir; doğrulama kayıtları birbirini bozmuyor. Tek istisna SPF: bir alan adında yalnızca bir SPF kaydı olabilir.
SPF kaydının yapısı
Tipik bir kayıt:
v=spf1 include:_spf.posta-saglayici.com ip4:203.0.113.10 ~all
| Parça | Anlamı |
|---|---|
| v=spf1 | Bu kaydın SPF olduğunu söyleyen başlangıç; her SPF kaydı bununla başlar |
| include:alan.com | O alan adının SPF listesini de kabul et — e-posta sağlayıcıları bu biçimi verir |
| ip4:203.0.113.10 | Bu IPv4 adresi gönderebilir; blok da yazılabilir (/24) |
| ip6:... | Aynısı IPv6 için |
| a | Alan adının A kaydındaki sunucu gönderebilir |
| mx | MX kaydındaki sunucular gönderebilir |
| ~all | Listede olmayan her şey şüpheli (yumuşak ret) |
| -all | Listede olmayan her şey reddedilsin (sert ret) |
| ?all | Karar yok — pratikte SPF'siz gibi |
| +all | Herkes gönderebilir — asla kullanmayın |
Kural soldan sağa okunuyor; ilk eşleşen parça sonucu belirliyor. Bu
yüzden all daima en sonda duruyor.
Beş yaygın hata
1. İki ayrı SPF kaydı
Yeni bir bülten servisi eklerken ikinci bir v=spf1 kaydı
açmak en sık hata. İki kayıt bulan alıcı sunucu SPF'i tamamen geçersiz
sayıyor. Doğrusu, yeni servisin include: parçasını mevcut
kaydın içine, all'dan önceye eklemek.
2. On sorgu sınırı
Alıcı sunucu SPF'i değerlendirirken en fazla 10 ek DNS
sorgusu yapıyor. include, a,
mx ve redirect bu sayıya giriyor; üstelik bir
include'un içindeki include'lar da sayılıyor. ip4 ve
ip6 sayılmıyor. Sınır aşılınca sonuç hata ve SPF yok
hükmünde. Dört-beş servis kullanan bir alan adında bu sınıra
ulaşmak kolay; kullanmadığınız servislerin include'larını silin.
3. Önce -all, sonra yeni servis
-all yazdıktan sonra listeye eklenmemiş bir servisten
gönderilen her posta reddediliyor. Muhasebe programının fatura
e-postası, CRM'in otomatik bildirimi, bülten aracı — hepsi alan
adınız adına gönderiyor. Tam listeyi çıkarmadan ~all ile
başlayın.
4. Sitenin iletişim formu
Küçük sitelerde gözden kaçan gönderici web sunucusunun kendisi.
İletişim formu ya da sipariş bildirimi doğrudan sunucudan
gönderiliyorsa ve sunucunun adresi SPF'te yoksa form e-postaları spam
klasörüne düşüyor. İki çözüm var: sunucunun adresini
ip4: ile eklemek ya da formu, e-posta sağlayıcınızın
sunucusu üzerinden kimlik doğrulamalı gönderecek şekilde ayarlamak.
İkincisi daha sağlam; hangi portların kullanıldığını
SMTP portları yazısında anlattık.
5. Satır uzunluğu
Bir TXT kaydındaki tek dize en fazla 255 karakter olabiliyor. Uzun kayıtlar (özellikle DKIM anahtarları) birden fazla tırnaklı parçaya bölünüyor ve alıcı taraf parçaları birleştirerek okuyor. Çoğu DNS paneli bunu kendiliğinden yapıyor; yapmıyorsa panelin yardım sayfasına bakın, kaydı iki ayrı TXT kaydına bölmeyin.
SPF'in görmediği şey: görünen gönderen
SPF, iletinin teknik zarfındaki gönderen adresini (geri dönüş adresi) sınıyor, alıcının ekranda gördüğü "Kimden" satırını değil. Bir dolandırıcı zarfta kendi alan adını kullanıp SPF'i geçebilir, ekranda ise sizin adınızı gösterebilir. Bu açığı kapatan DMARC.
| Kayıt | Nerede durur | Ne sınar |
|---|---|---|
| SPF | ornek.com | Gönderen sunucu listede mi |
| DKIM | secici._domainkey.ornek.com | İleti alan adının anahtarıyla imzalanmış mı, yolda değişmiş mi |
| DMARC | _dmarc.ornek.com | SPF ya da DKIM geçti mi ve geçen alan adı görünen gönderenle uyuşuyor mu |
DKIM anahtarını e-posta sağlayıcınız üretiyor ve size kayıt olarak veriyor; bazı sağlayıcılar TXT yerine sağlayıcıyı gösteren bir CNAME kaydı istiyor. Kaydın adındaki "seçici" kısmı sağlayıcıya göre değişiyor.
DMARC'ı adım adım sıkılaştırmak
Bir DMARC kaydı:
v=DMARC1; p=none; rua=mailto:dmarc@ornek.com
p=noneile başlayın. Hiçbir posta etkilenmiyor; alıcı sunucularruaadresine hangi sunucuların sizin adınıza gönderdiğini raporluyor.- Raporlarda tanımadığınız ama meşru olan gönderileri bulun, SPF ve DKIM'e ekleyin.
p=quarantine— uyuşmayan posta spam klasörüne.p=reject— uyuşmayan posta hiç teslim edilmiyor. Alan adınızı taklit eden oltalama e-postalarını durduran aşama bu.
Büyük e-posta sağlayıcıları 2024'ten beri çok sayıda ileti gönderenlerden üç kaydı birden istiyor; az gönderenler için de en az birinin olması bekleniyor. Alıcı tarafta bu sonuçların nasıl okunduğunu oltalama yazısında anlattık.
Kayıtları kontrol etmek
| Kontrol | Komut |
|---|---|
| SPF ve diğer TXT kayıtları | nslookup -type=TXT ornek.com |
| DMARC | dig TXT _dmarc.ornek.com +short |
| DKIM | dig TXT secici._domainkey.ornek.com +short |
Komut satırı yerine DNS sorgulama aracında kayıt türü olarak TXT seçebilirsiniz. Değişikliğin ne zaman her yerde görüneceği kaydın TTL süresine bağlı; mantığını A kaydı yazısında anlattık.
Sıkça sorulan sorular
SPF kaydı nedir?
Alan adınız adına hangi sunucuların e-posta gönderebileceğini listeleyen TXT kaydıdır. Alıcı sunucu gelen iletinin bu listedeki bir sunucudan gelip gelmediğine bakar; listede olmayan gönderi şüpheli sayılır ya da reddedilir.
Bir alan adında iki SPF kaydı olabilir mi?
Hayır. İki ayrı v=spf1 kaydı bulan alıcı sunucu SPF’i geçersiz sayar. Yeni bir gönderim servisinin include parçasını mevcut kaydın içine, all ifadesinden önce ekleyin.
~all mı -all mı kullanmalıyım?
Adınıza gönderen bütün servisleri listelediğinizden emin olana kadar ~all ile başlayın. -all listede olmayan her gönderiyi reddettirir; unutulan bir servis varsa o e-postalar teslim edilmez.
SPF, DKIM ve DMARC arasındaki fark ne?
SPF gönderen sunucunun yetkili olup olmadığını, DKIM iletinin alan adının anahtarıyla imzalanıp imzalanmadığını sınar. DMARC ikisinden birinin geçtiğini ve geçen alan adının görünen gönderenle uyuştuğunu arar.
Sitemin iletişim formu e-postaları neden spama düşüyor?
Form çoğu zaman doğrudan web sunucusundan gönderir ve sunucunun adresi SPF kaydında yoktur. Sunucuyu SPF’e ekleyin ya da formu e-posta sağlayıcınızın sunucusu üzerinden kimlik doğrulamalı gönderecek şekilde ayarlayın.