Konu Değerlendirmesi:
  • 0 Oy(lar) - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Web Sitesinde İletişim Formu Çalışmıyor: E-posta Neden Gelmiyor?
#1
Web sitesindeki iletişim formu ekranda başarıyla gönderilmiş görünmesine rağmen e-posta ulaşmıyorsa sorun yalnızca form tasarımında olmayabilir. PHP mail yapılandırması, SMTP, yanlış alıcı adresi, DNS kayıtları, spam filtreleri veya formun sunucu tarafında hiç kaydedilmemesi aynı sonuca yol açabilir.

Bu rehberde iletişim formu çalışmadığında önce formun gerçekten gönderilip gönderilmediğini, ardından e-posta teslimat zincirinin hangi aşamada koptuğunu adım adım kontrol edeceğiz.


Önce iki problemi birbirinden ayırın

Şunlar aynı şey değildir:

Kod:
Form gönderilemiyor

ve:

Kod:
Form gönderiliyor ancak e-posta gelmiyor

İlk durumda uygulama veya form tarafında hata olabilir.

İkinci durumda mesaj sunucuda oluşmuş fakat e-posta teslimatı başarısız olmuş olabilir.


1. Formu kendiniz test edin

Gerçek kullanıcı gibi:

  1. Ad alanını doldurun
  2. E-posta girin
  3. Telefon girin
  4. Mesaj yazın
  5. Gönder butonuna basın

Ekranda ne olduğunu not edin.

Örneğin:

Kod:
Mesajınız başarıyla gönderildi.

görünmesi tek başına e-postanın gerçekten gönderildiğini kanıtlamaz.


2. Form kaydı veritabanına yazılıyor mu?

Sistem form mesajlarını veritabanında veya yönetim panelinde saklıyorsa kontrol edin.

Örneğin:

Kod:
Form kaydı var E-posta yok

ise form çalışıyor ancak mail teslimatında problem var demektir.

Hiç kayıt oluşmuyorsa önce formun backend işlemini kontrol edin.


3. Alıcı e-posta adresi doğru mu?

Form ayarlarında:

Kod:
info@site.com

yerine yanlışlıkla:

Kod:
info@eski-site.com

kalabilir.

Özellikle tema veya proje kopyalandıysa eski müşteriye ait alıcı adresi bulunabilir.


4. Spam klasörünü kontrol edin

E-posta gerçekten gönderilmiş ancak:
  • Spam
  • Gereksiz
  • Tanıtımlar

klasörüne düşmüş olabilir.

İlk testte yalnız gelen kutusuna bakmayın.


5. PHP mail kullanıyorsanız sunucu desteğini kontrol edin

Bazı hostinglerde PHP:

Kod:
mail()

fonksiyonu sınırlanmış veya tamamen kapatılmış olabilir.

Uygulama mail gönderdiğini varsayarken sunucu teslimatı gerçekleştirmeyebilir.

Bu durumda hosting sağlayıcısının mail politikasını kontrol edin.


6. SMTP kullanmak daha sağlıklı olabilir

SMTP ile gönderimde site belirli bir posta sunucusunda kimlik doğrulaması yapar.

Tipik olarak şu bilgiler gerekir:

Kod:
SMTP sunucusu Port Kullanıcı adı Parola Şifreleme türü Gönderen adresi

Bu değerlerden biri yanlışsa bağlantı başarısız olabilir.


7. SMTP portunu kontrol edin

Yaygın SMTP kurulumlarında kullanılan portlar sağlayıcıya göre değişebilir.

Örneğin:

Kod:
465 587

gibi portlar görülebilir.

Ancak doğru port ve şifreleme türünü kullandığınız e-posta sağlayıcısının dokümantasyonundan alın.


8. SMTP kullanıcı adı ve gönderen adresini karşılaştırın

Şöyle bir yapı bazı servislerde sorun oluşturabilir:

Kod:
SMTP hesabı: info@site.com From: rastgele@gmail.com

E-posta sağlayıcısının izin verdiği gönderen adreslerini kullanın.


9. Gmail kullanıyorsanız normal hesap parolası her zaman uygun olmayabilir

Google hesabının güvenlik yapılandırmasına göre uygulama parolası veya OAuth tabanlı bağlantı gerekebilir.

Kullanıcının normal Google hesabı parolasını site koduna kaydetmek iyi bir yöntem değildir.


10. SMTP hatasını loglayın

Mail gönderme kütüphanesi hata döndürüyorsa bunu kaydedin.

Örneğin:

Kod:
Authentication failed

veya:

Kod:
Connection timed out

iki farklı problemdir.

Birincisi kimlik bilgilerine, ikincisi bağlantı veya porta işaret edebilir.


11. Form gönderen kişinin e-postasını doğrudan From yapmayın

Kullanıcı forma:

Kod:
musteri@gmail.com

yazdı diye e-postayı:

Kod:
From: musteri@gmail.com

olarak sunucunuzdan göndermek SPF ve DMARC açısından sorun oluşturabilir.

Daha sağlıklı yapı çoğu durumda:

Kod:
From: form@site.com Reply-To: musteri@gmail.com

şeklinde kurulabilir.


12. SPF kaydını kontrol edin

Domain adına hangi sunucuların e-posta göndermeye yetkili olduğunu SPF kaydı belirtmeye yardımcı olur.

Yanlış veya eksik SPF:
  • Spam riskini artırabilir
  • Teslimatı etkileyebilir
  • Alıcı sunucuda reddedilmeye yol açabilir


13. DKIM kaydını kontrol edin

DKIM, gönderilen e-postaların alan adı adına kriptografik olarak imzalanmasına yardımcı olur.

SMTP sağlayıcınız DKIM kaydı veriyorsa DNS'e doğru eklenip eklenmediğini kontrol edin.


14. DMARC politikasını kontrol edin

Çok katı DMARC yapılandırması ve yanlış SPF/DKIM kombinasyonu teslimat problemlerine yol açabilir.

DNS değişikliği yaptıktan sonra e-posta sorunları başladıysa MX ve TXT kayıtlarının korunup korunmadığını da kontrol edin.

DNS Değişikliği Ne Kadar Sürer? DNS Yayılımı Nasıl Kontrol Edilir? rehberindeki DNS kontrolleri bu noktada yardımcı olabilir.


15. MX kaydının doğru olduğunu doğrulayın

Web sitesi başka hostinge taşındığında yalnız A kaydı değiştirilecekken yanlışlıkla MX kayıtları da silinebilir.

Bu durumda form e-postası değil, domainin genel mail sistemi de etkilenebilir.


16. Gönderen domain ile site domainini kontrol edin

Şu yapı daha kolay yönetilebilir:

Kod:
Site: site.com From: form@site.com

Harici bir domain kullanılıyorsa hangi servis üzerinden gönderim yapıldığını açık şekilde yapılandırın.


17. Form validasyonu sunucuda da yapılmalı

Tarayıcıdaki JavaScript doğrulaması tek başına yeterli değildir.

Sunucu tarafında da:
  • E-posta formatı
  • Zorunlu alanlar
  • Mesaj uzunluğu
  • Telefon

kontrol edilebilir.


18. CAPTCHA başarısız oluyor olabilir

Formda:
  • reCAPTCHA
  • hCaptcha
  • Turnstile

kullanılıyorsa doğrulama backend tarafında başarısız olabilir.

Kullanıcı başarı mesajı görürken formun gerçekte reddedildiği hatalı uygulamalar da olabilir.

Log kaydını kontrol edin.


19. JavaScript hatası formu engelliyor olabilir

Form AJAX ile gönderiliyorsa tarayıcı Console bölümünü kontrol edin.

Örneğin:

Kod:
Uncaught JavaScript error

nedeniyle gönderim kodu hiç çalışmıyor olabilir.


20. Network isteğini kontrol edin

Tarayıcı geliştirici araçlarında:

Network

sekmesini açın.

Formu gönderin.

İlgili isteğin durum koduna bakın.

Örneğin:

Kod:
200 400 403 422 500

farklı sorunlara işaret eder.


21. 500 hatası varsa mail ayarından önce backend'i düzeltin

Form POST isteği:

Kod:
500 Internal Server Error

döndürüyorsa form işlemi sunucuda çöküyor olabilir.

Bu durumda 500 Internal Server Error rehberindeki PHP ve log kontrollerini uygulayın.


22. Form mobilde de test edilmelidir

Masaüstünde çalışan form mobilde:
  • Butonun görünmemesi
  • Klavye problemi
  • Popup tarafından kapatılması
  • Yanlış input tipi

nedeniyle kullanılamayabilir.


23. Form gönderimini yayına alma kontrolüne dahil edin

Yeni siteyi yalnız tasarım üzerinden onaylamayın.

Gerçek test formu gönderilmeden site tamamlanmış sayılmamalıdır.

Yeni Web Sitesi Yayına Açılmadan Önce 25 Maddelik Kontrol Listesi içerisinde diğer canlıya çıkış kontrollerini de bulabilirsiniz.


İletişim formu hızlı kontrol sırası

  1. Form gerçekten submit oluyor mu?
  2. Veritabanı kaydı oluşuyor mu?
  3. Alıcı adresi doğru mu?
  4. Spam klasörü kontrol edildi mi?
  5. SMTP bağlantısı başarılı mı?
  6. Port doğru mu?
  7. Kimlik bilgileri doğru mu?
  8. From ve Reply-To doğru mu?
  9. SPF doğru mu?
  10. DKIM doğru mu?
  11. MX kayıtları doğru mu?
  12. CAPTCHA çalışıyor mu?
  13. Network isteği hangi kodu döndürüyor?


Sonuç

İletişim formu problemi şu zincirde teşhis edilmelidir:

Tarayıcı → form backend'i → mail kütüphanesi → SMTP sunucusu → DNS doğrulaması → alıcı sunucu

Formun başarı mesajı göstermesi, e-postanın teslim edildiğini kanıtlamaz.

Her katmanı ayrı ayrı kontrol ettiğinizde problemin form kodunda mı, SMTP'de mi yoksa e-posta altyapısında mı olduğunu çok daha hızlı belirleyebilirsiniz.
Bul Yanıtla


Hızlı Erişim:


Bu Konuya Göz Atan Kullanıcılar: 1 Ziyaretçi(ler)