Formu doldurup gönderiyorsun, ekranda “Mesajınız başarıyla gönderildi” yazısı çıkıyor ama e-postana hiçbir şey düşmüyor. Contact Form 7 kullananların en sık yaşadığı sorun budur ve neredeyse her zaman mailin gönderilme biçimiyle ilgilidir. Bu yazıda sorunu adım adım daraltıp kalıcı çözümü nasıl kuracağını anlatıyorum.
Mail neden gelmiyor
Contact Form 7 varsayılan olarak sunucunun PHP mail fonksiyonunu kullanır. Birçok hosting bu fonksiyonu ya kapatır ya da gönderilen postayı spam sayar. Mesaj “gönderildi” görünür çünkü form eklentisi işini yapmıştır, mailin teslim edilip edilmediğini göremez. İkinci sık neden gönderen adresidir. Formda gönderen olarak gmail.com gibi senin sahibi olmadığın bir adres yazıyorsa alıcı sunucu bunu sahte sayıp eler. Üçüncü olasılık mailin ulaşıp spam klasörüne düşmesidir.
Adım adım çözüm
Önce basit kontrolleri yap, sonra kalıcı çözüme geç.
- Alıcı kutunda spam ve tüm postalar klasörüne bak. Mail oraya düşüyorsa teslim var, itibar sorunu var demektir.
- Formun Posta sekmesinde Kimden alanını kendi alan adındaki bir adrese çevir, örneğin iletisim@senindomain.com. Yanıtla alanına ziyaretçinin adresini koy.
- Alıcı (Kime) adresinin doğru yazıldığını ve gerçekten eriştiğin bir kutu olduğunu doğrula.
- Kalıcı çözüm için bir SMTP eklentisi kur. WP Mail SMTP yaygın ve kurulumu kolaydır.
- SMTP eklentisinde gönderici adresini alan adındaki posta hesabınla, sunucu bilgilerini ise e-posta sağlayıcından aldığın host, port ve şifreyle doldur.
SMTP kurulumu ve test
SMTP, mailleri tanınır bir posta sunucusu üzerinden gönderir, böylece teslim oranı belirgin biçimde artar. WP Mail SMTP kurulumunda birkaç seçenek var. Kendi hosting posta hesabını kullanacaksan “Other SMTP” seç, sağlayıcının verdiği sunucu adı, 465 (SSL) ya da 587 (TLS) portu, kullanıcı adı ve şifreyi gir. Google Workspace ya da başka bir servis kullanıyorsan onların hazır entegrasyonunu seçmek daha az hata yapar.
Kurulumdan sonra eklentinin Email Test bölümünden deneme maili gönder. Gelirse iş tamam. Gelmezse port ya da şifre yanlıştır, bir de sunucunun giden port engelini kontrol et. SPF ve DKIM kayıtlarını DNS tarafında eklemek de spam’e düşmeyi azaltır; bu kayıtları e-posta sağlayıcın sana verir.
Yeni bir site kuruyorsan iletişim formunu baştan doğru yapılandırmak sonradan bu sorunla uğraşmaktan kurtarır. Kurulum sürecini WordPress site kurulumu hizmetinde bu ayarlarla birlikte yapıyorum. Form ve mail dışındaki yaygın aksaklıklar için WordPress hataları ve çözümleri rehberine bakabilirsin.
Form kayıtlarını yedekle ve mail kaybını önle
Mail teslimi arada bir aksasa bile gelen talepleri kaçırmamanın yolu var. Flamingo eklentisi Contact Form 7 ile birlikte çalışır ve her gönderimi veritabanına kaydeder. Böylece mail gelmese bile mesajı panelden görebilirsin. Kurulumu basittir: eklentiyi etkinleştirmen yeter, form gönderimleri otomatik olarak kayıt altına alınır. Bu yöntem özellikle önemli taleplerin kaybolmasını önler.
SMTP kurduktan sonra WP Mail SMTP’nin günlük (log) özelliğini açmanı öneririm. Her gönderilen mailin durumu burada tutulur, teslim edildi mi edilmedi mi net görürsün. Bir mail ulaşmadığında logdaki hata mesajı sorunun port mu, kimlik doğrulama mı yoksa alıcı sunucusu mu olduğunu söyler. Formun gönderildiği adresin kutusu dolu ya da pasifse de mail geri döner; o kutunun aktif olduğundan emin ol.
Sık sorulan sorular
SMTP eklentisi kurmak güvenli mi?
Evet. SMTP eklentisi mailin gönderilme yolunu düzenler, siteni yavaşlatmaz ve veri toplamaz. Şifreni wp-config.php içinde sabit olarak tanımlarsan veritabanında açık durmaz, bu daha temiz bir yöntemdir.
Form gönderiliyor ama bazı maillere ulaşmıyor, neden?
Genelde alıcı sağlayıcısına göre değişen bir itibar sorunudur. Gönderen adresini alan adınla eşleştirmek, SPF ve DKIM kayıtlarını eklemek ve tanınan bir SMTP sunucusu kullanmak bu farkı büyük ölçüde kapatır.
Form mailleriyle tek tek uğraşmak yerine SMTP ve DNS ayarlarını senin yerine kurmamı istersen siteye bakıp hızlıca çözerim. Başlamak için ücretsiz ön analiz isteyebilirsin.
Bu konunun tüm rehberi: WordPress Hataları ve Çözümleri