Cloudflare DNS hesabınız var ama Microsoft 365 için SPF/DKIM/DMARC kayıtlarını nereye, nasıl eklediğinizi tam bilmiyorsanız — 10 dakikalık tam yapılandırma rehberi geldi. Cloudflare'ı tercih etmenin nedeni belli: DNS yayılımı 1-5 dakika, DNSSEC default açık, ücretsiz, modern panel. Ama Microsoft 365'in SPF/DKIM/DMARC kombinasyonunu Cloudflare'a doğru kurmamak e-postaların spam'e düşmesi veya domain'inizin sahte e-posta için kötüye kullanılması gibi ciddi sorunlara yol açar. Bu yazıda 3 kayıt türünü adım adım, ekran navigasyon yolu ile, kopyalanabilir değerlerle anlatıyoruz.
Neden Cloudflare? Diğer DNS'lerden Farkı
| Özellik | Cloudflare | GoDaddy / Namecheap | Hosting Panel (cPanel) |
| Yayılım hızı | 1-5 dakika | 1-2 saat | 1-4 saat |
| DNSSEC default | ✓ Otomatik açık | Manuel aktivasyon | Çoğu desteklemez |
| Fiyat | Ücretsiz (DNS-only) | Domain ile dahil | Hosting paketi içinde |
| API + Terraform | ✓ Tam destek | Sınırlı | Çoğu yok |
| Underscore subdomain (_dmarc, _mta-sts) | ✓ | ✓ (modern UI) | Bazı eski sürümler red |
| Coğrafi failover, load-balancing | ✓ (Pro plan ile) | Yok | Yok |
Türkiye'deki Microsoft 365 müşterilerinin yaklaşık %40'ı NIC.tr'den alınan .com.tr domain'lerini Cloudflare'a yönlendirir — NIC.tr panel sınırlı olduğu için. Bu yazı hem yerli (.com.tr) hem global (.com) domain'ler için aynı şekilde geçerli.
Ön Koşul — Domain'i Cloudflare'a Bağladınız mı?
Eğer domain'iniz hâlâ NIC.tr veya başka bir registrar'da yönetiliyor ve Cloudflare'ı kullanmıyorsanız, önce DNS yönetimini Cloudflare'a yönlendirin:
- Cloudflare ücretsiz hesap aç
- Dashboard → "Add a Site" → domain'inizi yaz (örn.
sirketim.com.tr)
- Plan: Free seç
- Cloudflare mevcut DNS kayıtlarınızı otomatik tarar — listeyi kontrol et, eksik varsa manuel ekle
- Cloudflare 2 NS adı verir (örn.
dana.ns.cloudflare.com, kim.ns.cloudflare.com)
- Domain registrar paneline (NIC.tr/GoDaddy/vs) git → Name Servers → Cloudflare NS'lerini ekle
- NIC.tr için: Hizmetler → Alan Adı Yönetimi → NS Set. GoDaddy için: My Products → Domain → Manage DNS → Nameservers → Change → Custom
- Yayılım: 1-24 saat. Tamamlandığında Cloudflare dashboard'da "Active" yeşil rozeti çıkar
Bu yazının geri kalanı domain'iniz Cloudflare'a bağlı varsayar. Şimdi 3 kayıt türünü ele alalım.
1. SPF Kaydı — Sahte E-posta Önleme
SPF (Sender Policy Framework), domain adınıza e-posta göndermeye yetkili sunucuları belirten DNS TXT kaydıdır. SPF olmazsa kötü niyetli kişiler "ahmet@sirketim.com.tr" görünümlü sahte e-posta gönderebilir.
Adım Adım Cloudflare'da Ekleyin:
- Cloudflare Dashboard →
dash.cloudflare.com → giriş yap
- Üstteki domain listesinden sirketim.com.tr'yi tıkla
- Sol menüde DNS → Records
- Sayfanın üstündeki turuncu "Add record" butonuna tıkla
- Form alanlarını şu şekilde doldur:
| Alan | Değer | Açıklama |
| Type | TXT | SPF her zaman TXT olarak eklenir (eski "SPF" record türü deprecated) |
| Name | @ | Root domain için (Cloudflare otomatik sirketim.com.tr olarak yazar) |
| Content | v=spf1 include:spf.protection.outlook.com -all | Sadece Microsoft 365 kullanıyorsanız |
| TTL | Auto | Cloudflare default 300 sn — yeterli |
| Proxy status | DNS only (gri bulut) | Mail için proxy kullanılmaz |
- Save tıkla — DNS Records tablosunda yeni satırı görmen lazım
- Yayılım 1-5 dakika
Birden Fazla E-posta Sağlayıcısı Kullanıyorsanız
Microsoft 365 + ek sağlayıcılar (Mailgun, SendGrid, HubSpot, MailChimp) varsa SPF tek satırda birleştirilir:
v=spf1 include:spf.protection.outlook.com include:mailgun.org include:sendgrid.net include:_spf.hubspot.com -all
10 DNS Lookup Limiti Tuzağı: SPF spec'inde her include: bir DNS lookup sayar. 10'dan fazla include eklerseniz SPF "permerror" verir — tüm SPF doğrulaması başarısız sayılır. 4-5 sağlayıcı kullanıyorsanız SPF flattening (her include'u IP'lere çevirme) gerekir. Microsoft Yetkili Çözüm Ortağı (CSP) olarak SPF flattening danışmanlığı sunuyoruz.
SPF Sonu: -all vs ~all vs ?all
| Operatör | Anlamı | Önerim |
-all | Hard fail — yetkisiz sunucudan gelen mail reddedilir | ✓ En güvenli — bunu kullanın |
~all | Soft fail — yetkisiz sunucudan gelen mail spam'e gönderilir, reddedilmez | İlk 1-2 hafta test için |
?all | Neutral — hiç önemsenmez | ✗ Asla kullanma |
+all | Tüm sunuculara izin ver | ✗ Kesinlikle hayır — SPF'i hiç koymakla aynı |
2. DKIM Kaydı — Dijital İmza (CNAME Yöntemi)
DKIM (DomainKeys Identified Mail), gönderilen her mailin başlığına dijital imza ekler. Alıcı sunucu DNS üzerinden public key'i çekip imzayı doğrular. Microsoft 365 DKIM kayıtlarını CNAME yöntemiyle yönetir — TXT manuel tutmak yerine Microsoft sürekli rotasyon yapar, siz dokunmazsınız.
Adım Adım — Microsoft Tarafı + Cloudflare Tarafı
- Microsoft 365 Defender admin merkezine git →
security.microsoft.com
- Sol menüde Email & collaboration → Policies & rules → Threat policies → DKIM
- Domain listende sirketim.com.tr'yi tıkla
- Sağ panelde "Enable" butonuna basacaksın — ama henüz basma, önce CNAME değerlerini al
- Microsoft 2 CNAME değeri gösterir, format:
selector1._domainkey.sirketim.com.tr → CNAME → selector1-sirketim-com-tr._domainkey.sirketim.onmicrosoft.com
selector2._domainkey.sirketim.com.tr → CNAME → selector2-sirketim-com-tr._domainkey.sirketim.onmicrosoft.com
- Bu iki CNAME değerini bir not defterine kopyala
- Cloudflare'a dön → DNS → Records → Add record
- Birinci kayıt için form:
| Alan | Değer |
| Type | CNAME |
| Name | selector1._domainkey |
| Target | selector1-sirketim-com-tr._domainkey.sirketim.onmicrosoft.com |
| TTL | Auto |
| Proxy status | DNS only (gri bulut) |
- Save
- Aynı işlemi tekrar yap — bu sefer
selector2._domainkey ve selector2-...onmicrosoft.com ile
- Yayılım 1-5 dakika
- Microsoft Defender admin'e dön → "Enable" butonuna bas → "Sign messages with DKIM" sliderini ON yap
- Microsoft DKIM key'leri doğrular (10-30 saniye), yeşil "Signing DKIM signatures for this domain" mesajı çıkar
Avantaj: CNAME yöntemiyle Microsoft DKIM key rotasyonunu otomatik yapar — yıllık veya 6 aylık rotasyonu manuel takip etmenize gerek yok. Eski TXT yöntemi (key'leri kendiniz publish ettiğiniz) bugün yalnızca özel senaryolar için.
3. DMARC Kaydı — Politika ve Raporlama
DMARC (Domain-based Message Authentication, Reporting and Conformance) SPF + DKIM'in üzerine "peki bu kontroller başarısız olursa ne yapayım?" sorusunu cevaplar. 3 politika seviyesi vardır:
| Politika | Anlamı | Ne Zaman Kullanılır? |
p=none | Sadece izleme, hiçbir aksiyon alma | İlk 1-2 ay — raporları topla, hangi sunucuların gönderdiğini öğren |
p=quarantine | Başarısız olanları spam klasörüne | 2-6 ay — daha güvenli ama yine de kayıp düşük |
p=reject | Başarısız olanları tamamen reddet | 6+ ay sonra, raporlar temiz olunca — en güvenli |
Cloudflare'a Adım Adım DMARC Ekle:
- Cloudflare Dashboard → sirketim.com.tr → DNS → Records → Add record
- Form:
| Alan | Değer |
| Type | TXT |
| Name | _dmarc (Cloudflare otomatik domain ekini ekler) |
| Content | v=DMARC1; p=quarantine; rua=mailto:dmarc@sirketim.com.tr; ruf=mailto:dmarc-forensic@sirketim.com.tr; pct=100; sp=quarantine; aspf=s; adkim=s |
| TTL | Auto |
| Proxy status | DNS only |
- Save → 1-5 dakika yayılım
DMARC Parametreleri Açıklama
- v=DMARC1 — Versiyon (sabit, hep DMARC1)
- p=quarantine — Politika (none / quarantine / reject)
- rua=mailto: — Aggregated raporların gönderileceği mailbox (günlük JSON XML)
- ruf=mailto: — Forensic (failure) raporlar (her başarısız doğrulamada anında)
- pct=100 — Mailların %100'üne politika uygulanır (ramp-up için
pct=10 başlanabilir)
- sp=quarantine — Subdomain politikası
- aspf=s, adkim=s — Strict alignment (gönderici domain ile başlık domain birebir eşleşmeli)
DMARC raporu nereye gelmeli? Yukarıdaki örnek dmarc@sirketim.com.tr kullanıyor. Bu mailbox günde 50-200 rapor alır — kullanıcı mailbox'ını kullanmayın. İdeal: ayrı bir DMARC analyzer hizmetinin (Postmark DMARC Digests ücretsiz, dmarcian, Valimail) verdiği özel email adresini kullan. Bu hizmetler raporları parse edip görsel dashboard'da gösterir.
DMARC Ramp-Up Stratejisi (3-6 Ay)
DMARC'i asla doğrudan p=reject ile başlatmayın. Hemen reject ile başlarsanız meşru sunucularınızın bilmediğiniz mailler reddedilir, müşteriler "ben mail gönderdim ama sana ulaşmadı" der. Doğru sıralama:
| Hafta | Politika | pct | Aksiyon |
| 1-4 | p=none | — | Raporları topla, gönderici sunucuları belirle |
| 5-8 | p=quarantine | pct=10 | %10 mail spam'e gider, false-positive'leri ölç |
| 9-12 | p=quarantine | pct=50 | %50'ye çık, raporlar temiz mi? |
| 13-16 | p=quarantine | pct=100 | %100 — tüm meşru sunucular hâlâ ulaşıyor mu? |
| 17-24 | p=reject | pct=10 | %10 reject ile başla |
| 24+ | p=reject | pct=100 | Tam koruma aktive |
Doğrulama: Yayılım Sonrası Komutlar
SPF/DKIM/DMARC kayıtlarınız yayıldıktan sonra terminal'den doğrulayın:
# SPF kontrolü
dig +short TXT sirketim.com.tr
# DKIM kontrolü (selector1)
dig +short CNAME selector1._domainkey.sirketim.com.tr
# DKIM kontrolü (selector2)
dig +short CNAME selector2._domainkey.sirketim.com.tr
# DMARC kontrolü
dig +short TXT _dmarc.sirketim.com.tr
# Tek seferde hepsi (Linux/Mac)
for r in "TXT @" "CNAME selector1._domainkey" "CNAME selector2._domainkey" "TXT _dmarc"; do
echo "=== $r ==="
dig +short $r sirketim.com.tr 2>/dev/null
done
Web tabanlı doğrulama:
Yaygın Cloudflare Hataları
Hata 1: Proxy Status "Proxied" (Turuncu Bulut)
SPF/DKIM/DMARC TXT/CNAME kayıtlarında proxy AÇIK olamaz. Mail için Cloudflare proxy desteği YOK — kayıtlar her zaman "DNS only" (gri bulut) olmalı.
Hata 2: Birden Fazla SPF Kaydı
Aynı domain için 2 SPF TXT kaydı olursa SPF tüm sunucular için "permerror" döner. Eski SPF varsa SİL, üstüne yazma — Cloudflare bunu otomatik kontrol etmez.
Hata 3: DMARC RUA Mailbox'ı Aynı Domain'de
rua=mailto:dmarc@sirketim.com.tr kullanıyorsanız, bu mailbox'a günde yüzlerce JSON ekli mail gelir. Ayrı mailbox veya 3rd-party DMARC analyzer kullanın.
Hata 4: DKIM CNAME'i TXT olarak ekleyenler
Microsoft 365 DKIM CNAME'lerini bazı kullanıcılar TXT olarak eklemek istiyor — yapmayın. CNAME = TXT değildir. Microsoft formatı CNAME bekler, DKIM doğrulaması başarısız olur.
Sıradaki Adım: Tüm DNS Sağlayıcılar İçin Rehber
DNS Sağlayıcı Kurulum Rehberi — 8 Provider × 3 Kayıt
Cloudflare, NIC.tr, GoDaddy, Namecheap, Wix, AWS Route 53, Plesk, cPanel — 8 sağlayıcı için adım adım SPF/DKIM/DMARC ekleme rehberi. Domain'inizi girin, değerler dinamik özelleşsin.
DNS Sağlayıcı Rehberini Aç →
Microsoft Yetkili Çözüm Ortağı (CSP) olarak DMARC ramp-up programı (none → quarantine → reject 90 günlük profesyonel rehberlik) + DKIM aktivasyon + SPF flattening hizmetlerini sunuyoruz. WhatsApp 0216 344 15 59.
Sıkça Sorulan Sorular
Cloudflare'da SPF kaydı kaç dakikada aktif olur?
Cloudflare DNS yayılımı global olarak 1-5 dakikadır — sektörün en hızlısı. GoDaddy/Namecheap 1-2 saat, NIC.tr 1-24 saat. dig +short TXT sirketim.com.tr komutu ile 5 dakika sonra kontrol edebilirsiniz.
Cloudflare ücretsiz planı SPF/DKIM/DMARC için yeterli mi?
Evet. Cloudflare Free planı: sınırsız DNS query, otomatik DNSSEC, tüm record türleri (TXT/CNAME/MX/SRV vb.), API erişimi. SPF/DKIM/DMARC için Pro plan ($20/ay) gerekmez. Pro plan WAF, image optimization gibi web özelliklerine yöneliktir — DNS için Free yeterli.
NIC.tr'den .com.tr aldım, Cloudflare'a nasıl yönlendirebilirim?
NIC.tr panele giriş → Hizmetler → Alan Adı Yönetimi → seçili domain → NS Set tanımla → Cloudflare'ın 2 NS adını ekle (Cloudflare dashboard'da gözükür). Yayılım 1-24 saat. Sonra tüm DNS yönetimi Cloudflare'da. NIC.tr panel sınırlı olduğu için bu Türkiye'deki en yaygın yöntem.
DMARC raporları nereye gelmeli?
İdeal: ücretsiz bir DMARC analyzer hizmetinin verdiği özel email adresi (örn. Postmark DMARC Digests ücretsiz haftalık özet). Kötü fikir: kullanıcı mailbox'ı (günde 50-200 JSON ekli mail spam yapar). Eğer kendi domain'inizi kullanmak isterseniz dmarc@sirketim.com.tr ayrı bir mailbox açın, klasör otomasyonuyla ayırın.
DKIM CNAME'i mi TXT mi eklemeliyim?
Microsoft 365 + Google Workspace + birçok modern sağlayıcı CNAME yöntemini kullanır — bu sayede public key rotasyonu sağlayıcı tarafından otomatik yapılır. TXT yöntemi (kendi key'lerinizi yönettiğiniz) yalnız özel senaryolar için. Microsoft için kesinlikle CNAME.
SPF -all yerine ~all kullanırsam ne olur?
~all "soft fail" — yetkisiz sunucudan gelen mail spam klasörüne gider, reddedilmez. Test sırasında 1-2 hafta için makuldür. Production'da -all (hard fail) kullanın — sahte e-posta tamamen reddedilir, "spamde de ulaşır" tuzağına düşmezsiniz.
DMARC reject'e ne zaman geçmeliyim?
3-6 ay p=quarantine; pct=100 sonrası DMARC raporlarınız temizse — yani yetkisiz sunucudan mail gelmiyor, meşru sunucularınız hep doğrulanıyorsa. Acele etmeyin: bir kez reject'e geçtiniz mi, kötü yapılandırılmış meşru bir sunucu (örn. unutulmuş bir CRM) mail gönderemez. CSP partner olarak ramp-up rehberliği sunuyoruz.
Kaynaklar