E-posta gitmiyor neden gitmediğine dair bir fikriniz yok mu. E-posta Gitmiyor ise öncelikle e-posta ayarlarını gözden geçirmeniz gerekiyor. eğer ayarlarınızdan kaynaklı değil ise servis sağlaycınıza danışmanız gerekmektedir. Sizlere hataların çözümlerini listeledik..
WordPress e-posta gitmiyor: “wordpress mail göndermiyor”, “contact form mail gelmiyor” sorununda doğru sıra ile kalıcı çözüm
WordPress sitelerinde “formdan mail gelmiyor” ya da “şifre sıfırlama e-postası gitmiyor” şikâyeti en sık görülen klasiklerden biridir. Çünkü WordPress varsayılan olarak PHP mail() mantığıyla gönderim yapar ve modern e-posta dünyasında bu yöntem çoğu zaman ya kısıtlanır ya da spam’e düşer. Burada açık konuşayım: “Mail attım ama gelmedi” diye günlerce uğraşmanın anlamı yok. Doğru sırayı uygularsan sorun genelde aynı gün kapanır.
Bu yazı; “wordpress mail göndermiyor”, “contact form mail gelmiyor” aramalarının arkasındaki gerçek sebepleri, önce teşhis sonra kalıcı çözüm mantığıyla anlatır. Tipik nedenler senin söylediğin gibi net: sunucu mail kısıtı, SPF/DKIM yok, SMTP gereksinimi. İlk kontrol de aynı şekilde: SMTP ile gönderim, domain DNS kayıtları, log.
Performans tarafında da şunu not düşeyim: doğru yapılan Web Site Hızlandırma e-posta sorununu çözmez ama bazı “zaman aşımı/cron” kaynaklı bildirim problemlerini azaltabilir. Yani Web Site Hızlandırma burada yan etken; esas iş mail teslimat disiplinidir.

Belirtiler: Hangi e-posta türü gitmiyor? (Bu ayrım kritik)
1) İletişim formu e-postaları gelmiyor
Contact Form 7, WPForms, Elementor Form gibi form eklentilerinden “mail gelmiyor” deniyorsa, çoğu zaman mail gönderildi sanılır ama teslim edilmez. Formun başarı mesajı göstermesi “mail kesin gitti” demek değildir.
2) Şifre sıfırlama ve sistem bildirimleri gitmiyor
Şifre sıfırlama, yeni kullanıcı bildirimi, sipariş e-postaları gibi WooCommerce/WordPress sistem mailleri gitmiyorsa; ya sunucu mail fonksiyonu kısıtlıdır, ya da domain tarafında SPF/DKIM olmadığı için alıcı tarafı reddediyordur.
3) Mail gidiyor ama spam’e düşüyor
Bu, “gönderim var ama teslimat kalitesi yok” durumudur. SPF/DKIM/DMARC yoksa veya From adresi uyumsuzsa spam’e düşmek çok olağandır.
Gerçek tablo: WordPress neden mail gönderemiyor?
WordPress çekirdeği “mail gönder” dediğinde çoğu senaryoda PHP mail() fonksiyonuna dayanır. Hosting firmaları bunu ya tamamen kapatır ya da ciddi kotalar koyar. Ayrıca modern e-posta sağlayıcıları (Gmail, Outlook vb.) kimliği doğrulanmamış (SPF/DKIM’siz) gönderimleri çok kolay reddeder. Bu yüzden “mail çalışmıyor” şikâyetinin yüzde 80’i aslında “kimlik doğrulaması yok” ve “SMTP yok” problemidir.
Doğru sıra: İlk kontrol protokolü (işin eskiden beri sağlam yöntemi)
Adım 1: Önce log ile gerçek gönderim var mı, yok mu?
Mail problemlerinde en büyük hata “bende çalışıyor” diyerek kör ilerlemektir. Önce kayıt altına al. WordPress tarafında mail log tutan bir yöntem kullan (SMTP eklentilerinin çoğunda log vardır). Eğer logda “gönderildi” görüyorsun ama alıcıya ulaşmıyorsa teslimat/kimlik doğrulama sorunu vardır. Logda bile çıkmıyorsa, form/ayar/hook tarafında sorun ararsın.
Adım 2: SMTP ile gönderime geç (kalıcı çözümün temeli)
Açık söyleyeyim: Üretim sitelerinde PHP mail() ile devam etmek 2026’da gereksiz risk. SMTP ile gönderim, hem teslimatı artırır hem “kim gönderdi” kimliğini oturtur. En pratik yöntem: bir SMTP eklentisiyle WordPress’in wp_mail() çağrılarını SMTP üzerinden göndermek.
İstersen kod tarafında da wp_mail testini net yapabilirsin. Bu küçük test, WordPress’in mail fonksiyonunun tetiklenip tetiklenmediğini gösterir:
<?php
// Kısa test (geçici olarak bir admin sayfasında/mini eklentide çalıştır):
$to = 'seninmailin@domain.com';
$subject = 'WordPress Mail Test';
$message = 'Bu bir test e-postasıdır.';
$headers = array('Content-Type: text/plain; charset=UTF-8');
$sent = wp_mail($to, $subject, $message, $headers);
if ($sent) {
echo 'wp_mail tetiklendi (gönderim denendi).';
} else {
echo 'wp_mail başarısız (sunucu/ayar sorunu olabilir).';
}
Bu test “gitti” demek değildir; “WordPress gönderim girişiminde bulundu” demektir. SMTP ve DNS doğru değilse yine teslimat olmayabilir.
Adım 3: Domain DNS kayıtlarını düzelt (SPF, DKIM, gerekirse DMARC)
SMTP kurdun, hala gelmiyor veya spam’e düşüyorsa sıradaki iş DNS’tir. E-posta dünyasında kimlik doğrulama DNS ile yapılır. Burada üç kayıt öne çıkar:
SPF: Bu domain adına kimler mail gönderebilir?
DKIM: Gönderilen mail imzalı mı, değiştirilmedi mi?
DMARC: SPF/DKIM başarısız olursa ne yapılsın (reddet/karantinaya al/izle)?
Tipik hata: From adresi “site@senindomainin.com” yazılır ama SMTP başka bir domain üzerinden gönderir. Bu uyumsuzluk spam riskini büyütür. From adresi ile gerçek gönderen (envelope sender) tutarlı olmalı.
SPF örnek mantığı (örnek string; sende sağlayıcıya göre değişir):
v=spf1 a mx include:mailprovider.com ~all
DKIM genelde mail sağlayıcının verdiği TXT kaydıdır (selector + uzun anahtar). DMARC ise en azından izleme ile başlamalı:
v=DMARC1; p=none; rua=mailto:dmarc@senindomainin.com; fo=1
Not: Bu kayıtları “rastgele” yazmak olmaz. SMTP’yi hangi sağlayıcı ile kurduysan onun SPF/DKIM yönergeleri esas alınır. En doğru yöntem: sağlayıcının panelindeki DNS kayıtlarını birebir girmek.
Adım 4: Sunucu mail kısıtı var mı? (hosting tarafı gerçeği)
Bazı hostingler port 25’i kapatır, bazıları dış SMTP’ye izin vermez, bazıları rate limit uygular. “SMTP kurdum çalışmadı” diyorsan, bunu da kontrol et. Genelde çözüm: 587 (TLS) veya 465 (SSL) portlarını kullanmak ve doğru kimlik doğrulamayı yapmak.
Ayrıca shared hostinglerde “aynı IP’den spam atıldı” diye IP reputasyonu düşük olabilir. Bu durumda en iyi çözüm, güvenilir bir transactional mail servisine geçmektir. Çünkü mesele WordPress değil, gönderici itibarıdır.
Adım 5: Form ayarlarını doğrula (Contact Form tarafı)
Formdan mail gelmiyorsa, form eklentisinde şu hatalar sık görülür:
1) “To” adresi yanlış yazılmıştır
2) “From” alanı alıcı (gmail vb.) gibi yazılmıştır (spoof gibi görünür)
3) Reply-To yanlış kurgulanmıştır
4) Form hiç tetiklenmiyordur (JS hata, captcha blok, güvenlik eklentisi)
Pratik öneri: From her zaman domain içinden bir adres olsun (örnek: no-reply@senindomainin.com). Kullanıcının maili Reply-To’ya yazılsın. Böylece SPF/DKIM uyumu artar.
Teşhis ağacı: Sorunun nerede olduğunu 10 dakikada bul
Senaryo A: SMTP yok, PHP mail() ile gidiyor sanılıyor
Çözüm: SMTP şart. Üretimde PHP mail() ile devam etme.
Senaryo B: SMTP var, log “sent” diyor ama mail gelmiyor
Çözüm: DNS (SPF/DKIM/DMARC) ve From uyumu. Spam/reject burada olur.
Senaryo C: Bazı mailler gidiyor, bazıları gitmiyor (özellikle şifre sıfırlama)
Çözüm: WordPress cron/timeout ve mail gönderim kuyruğu kontrolü, ayrıca güvenlik eklentilerinin wp-login akışını bozmadığından emin ol. Bu kısım nadir ama olur.
Senaryo D: Form “başarılı” diyor ama logda mail yok
Çözüm: Form tetiklenmiyor veya engelleniyor. Captcha, güvenlik duvarı, JS hataları, caching/optimization çakışması kontrol edilir.
Log ve izleme: “Gönderildi” mi “teslim edildi” mi?
Mail dünyasında iki ayrı gerçek var: gönderim denemesi ve teslimat. WordPress/SMTP çoğu zaman “gönderimi” loglar, ama teslimat alıcı sağlayıcıda reddedilebilir. Bu yüzden mümkünse mail sağlayıcının panelinden de loglara bak. Orada “SPF fail”, “DKIM fail”, “policy reject” gibi açık ifadeler görürsün.
Kalıcı düzen: E-posta altyapısını standartlaştır
Kalıcı çözüm için benim tavsiyem net:
1) SMTP/Transactional mail servisi kullan
2) From adresini domain içinde tut
3) SPF/DKIM’i doğru gir, DMARC’ı en azından izleme modunda başlat
4) Mail log tut (en azından sorun döneminde)
5) Form eklentisi ayarlarını “Reply-To” mantığıyla kur
Bu kurgu oturursa “wordpress mail göndermiyor” şikâyetini kökten kapatırsın. Sonrasında performans için yaptığın Web Site Hızlandırma adımları da mail tarafında sürpriz çıkarmaz; çünkü mail teslimatın doğru temele oturmuştur.
Uygulama sırası: Tek sayfada kontrol listesi
1) Mail log aç: WordPress gerçekten mail tetikliyor mu?
2) SMTP kur: wp_mail() SMTP üzerinden gitsin
3) DNS düzelt: SPF + DKIM, ardından DMARC (izleme ile başla)
4) From/Reply-To düzeni: From domain içi, kullanıcı maili Reply-To
5) Hosting kısıtını kontrol et: port, rate limit, IP reputasyonu
6) Form tarafını doğrula: alıcı adres, alanlar, captcha, JS hataları
7) Test et: farklı alıcılar (Gmail/Outlook), spam kutusu dahil
Bu sırayı uygula; sorun “rastgele” değil, teknik olarak nerede kırılıyorsa oradan çözülür.