Projeler ve ajans desteği için müsait · Hızlı yanıt, işi yapan kişiden

İletişim formu “mesaj gönderildi” diyor ama hiçbir şey ulaşmıyor

Bu, WooCommerce sipariş e-postalarından farklı bir sorundur: burada söz konusu olan, ziyaretçiye başarı onayı gösteren ama e-postanın sunucudan hiç ayrılmadığı bir iletişim veya teklif formudur (Contact Form 7, WPForms, Gravity Forms…). Onay, sunucu tarafında gönderim gerçekten başarılı olsun ya da olmasın istemci tarafında gösterilir; bu da durumu basit bir kayıp e-postadan daha aldatıcı hâle getirir.

Sorunumu anlatayım Mesaj gönderin

Nasıl ilerliyorum

  1. Yeniden üretme ve ağın kontrolü

    Bir test gönderisi yapıyorum ve tarayıcının ağ araçlarında gönderim isteğinin sunucuya gerçekten ulaşıp ulaşmadığını, ya da gönderilmeden önce engellenip engellenmediğini kontrol ediyorum.

  2. reCAPTCHA veya hCaptcha kontrolü

    Site anahtarı ile gizli anahtarın gerçekten eşleştiğini ve sağlayıcıda yapılandırılan alan adı ile sitenin gerçek alan adı arasında bir uyumsuzluk olmadığını kontrol ediyorum.

  3. Sunucu tarafındaki gönderimin test edilmesi

    Engelin gönderim fonksiyonunun kendisinden mi, genellikle PHP’nin mail() fonksiyonuyla sınırlı olan wp_mail()’den mi, yoksa form tarafındaki daha önceki bir adımdan mı kaynaklandığını anlamak için wp_mail()’i doğrudan test ediyorum.

  4. Bir JavaScript çakışmasının aranması

    İstek hiç gitmiyorsa, formun Ajax gönderim işleyicisini bozan bir eklenti arıyorum; genellikle bir başka eklentinin yinelenen veya çakışan bir betik yüklemesi sebep olur.

  5. Kimlik doğrulamalı bir SMTP röle kurulumu

    Engel gönderim tarafındaysa, sunucunun yerel mail() fonksiyonundan daha güvenilir olan phpmailer_init kancası üzerinden kimlik doğrulamalı bir SMTP röle yapılandırıyorum.

Düzenli olarak ele aldığım durumlar

  • “Mesajınız gönderildi” onayı görünüyor, ama gelen kutusuna hiçbir zaman bir şey ulaşmıyor
  • Form çalışıyor gibi görünüyor, ama gönderime dair hiçbir iz hiçbir yerde görünmüyor
  • Gönder butonu takılı kalıyor veya tıklamaya hiç tepki vermiyor
  • Form önceden iyi çalışıyordu, sonra hiçbir ayar değişmeden gönderimi durdurdu
  • Bazı mesajlar ulaşıyor, bazıları ulaşmıyor, görünür bir mantık olmadan

Onay bazen neden yalan söylüyor

Bir iletişim formu, işlemsel e-postalarla aynı zayıf noktaya dayanır: wp_mail(), varsayılan olarak alıcı posta sunucuları tarafından genellikle iyi karşılanmayan PHP’nin mail() fonksiyonunu kullanır. Ama burada tuzak daha aldatıcıdır, çünkü eklenti, sunucu tarafındaki gönderimin gerçekten başarılı olduğuna dair güvenilir bir onay beklemeden, JavaScript çalışır çalışmaz istemci tarafında bir başarı mesajı gösterir.

Yanlış yapılandırılmış bir reCAPTCHA veya hCaptcha anahtarı, yer değiştirmiş site anahtarı ve gizli anahtar, ya da bir alan adı uyumsuzluğu, gönderimin kendisini sessizce engelleyebilir: ziyaretçi ne bir hata ne de görünür bir engelleme görür. Başka bir eklentinin neden olduğu bir JavaScript çakışması da, formun Ajax gönderim işleyicisini bozabilir; form “çalışıyor” gibi görünür ama sunucuya hiçbir şey göndermez.

İlgili sayfalar

İhtiyacınızı bir dakikada anlatın

Size bir anket daha değil, doğrudan bir tahmin sunabilmem için birkaç hedefli soru.

objectif
integration
existant (facultatif)
echeance (facultatif)
Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Size dönebilmem için en az bir e-posta veya telefon numarası belirtin.

Sıkça sorulan sorular

Sorunun posta sunucumdan mı yoksa formun kendisinden mi kaynaklandığını nasıl anlarım?
wp_mail()’i formdan bağımsız olarak test ederek. Doğrudan gönderim de başarısız oluyorsa, sorun sunucu veya SMTP tarafındadır. Çalışıyorsa, engel daha önceki bir aşamada, formda veya JavaScript’indedir.
reCAPTCHA gerçekten hiçbir şey göstermeden bir gönderimi engelleyebilir mi?
Evet, yanlış yapılandırılmış bir anahtar veya uyumsuz bir alan adı, ziyaretçiye görünür bir hata mesajı olmadan gönderimi sessizce engelleyebilir.
Bir SMTP eklentisi bunu çözmeye yeter mi?
Eğer bu bir teslim edilebilirlik sorunuysa (PHP’nin mail() fonksiyonunun iyi karşılanmaması), evet, kimlik doğrulamalı bir SMTP eklentisi genellikle yeterlidir. Bir JavaScript çakışmasıysa, bir SMTP eklentisi hiçbir şeyi değiştirmez.
Neden önceden çalışıyordu, şimdi çalışmıyor?
Genellikle başka bir eklentinin güncellenmesi bir JavaScript çakışması yarattı, ya da bir reCAPTCHA anahtarı her iki tarafta (site ve sağlayıcı) güncellenmeden yenilendi.