WPHizmet

“Could not instantiate mail function” E-posta Hatası

Yayınlandı:
Son teknik kontrol:
1 dk okuma
İşlev bozukWordPress
Could not instantiate mail function.

Belirtiler

  • İletişim formu gönderilince “Could not instantiate mail function” uyarısı
  • WooCommerce veya form eklentisi günlüklerinde aynı ifade
  • Şifre sıfırlama e-postası gelmiyor
  • Sorun hosting değişikliğinden sonra başladı

Kısa cevap

Bu hata, WordPress’in e-posta göndermek için kullandığı PHPMailer kütüphanesinin sunucudaki PHP mail() işlevini çalıştıramadığını söyler. Sunucuda e-posta gönderen bir yazılım yoktur, hosting firması mail() işlevini kapatmıştır veya gönderim sınırı dolmuştur. Sonuç olarak iletişim formları, sipariş e-postaları ve şifre sıfırlama iletileri gitmez. Kalıcı çözüm, e-postaları mail() yerine kimlik doğrulamalı bir SMTP sunucusu üzerinden göndermektir.

Önemli noktalar

  • WordPress varsayılan olarak e-postayı PHP mail() işleviyle gönderir.
  • Hata sunucu tarafındadır; WordPress ayarlarından çözülemez.
  • SMTP ile gönderim hem bu hatayı giderir hem de e-postaların spam’e düşme olasılığını azaltır.
  • Gönderen adresinin alan adınıza ait olması ve SPF/DKIM kayıtlarının doğru olması gerekir.

Neden oluyor?

  • Sunucuda e-posta gönderecek yazılım (sendmail veya eşdeğeri) kurulu değil ya da çalışmıyor — sanal sunucu ve bazı bulut ortamlarında sık görülür.
  • Hosting firması güvenlik veya spam önleme amacıyla PHP mail() işlevini kapatmış.
  • Saatlik veya günlük gönderim sınırı dolmuş.
  • Gönderen (From) adresi sunucunun göndermesine izin verilmeyen bir alan adına ait.

Kalıcı çözüm: SMTP

  1. Bir SMTP hesabı belirleyin

    Alan adınıza ait bir e-posta hesabı (hosting veya kurumsal e-posta) ya da işlemsel e-posta hizmeti. Sunucu adresi, port ve kimlik bilgilerini hazırlayın.

  2. SMTP eklentisi kurun

    WordPress’in e-postalarını belirlediğiniz SMTP sunucusu üzerinden gönderen bir eklenti kurup bilgileri girin. Parolayı mümkünse wp-config.php’de sabit olarak tutun.

  3. Gönderen adresini ayarlayın

    Gönderen adresi SMTP hesabıyla aynı alan adında olmalıdır; aksi hâlde alıcı sunucular iletiyi reddedebilir.

  4. Test e-postası gönderin

    Eklentinin test özelliğiyle kendi adresinize gönderin; ardından iletişim formu ve (varsa) sipariş e-postasını gerçek akışla deneyin.

SPF, DKIM ve DMARC kayıtları ile WooCommerce e-postalarının ayrıntılı teşhisi WooCommerce e-posta gitmiyor rehberinde anlatıldı; aynı adımlar tüm WordPress e-postaları için geçerlidir.

Sık sorulan sorular

Hosting firması mail() açtı, yine de SMTP gerekli mi?
Önerilir. mail() ile gönderilen iletiler genellikle kimlik doğrulaması olmadan gider ve spam klasörüne düşme olasılığı yüksektir. SMTP, özellikle sipariş ve şifre sıfırlama gibi kritik e-postalarda daha güvenilirdir.
Hata yok ama e-postalar yine gelmiyor.
Gönderim başarılı görünse de alıcı sunucu iletiyi reddetmiş veya spam’e almış olabilir. SMTP hesabının gönderim günlüğüne ve alan adınızın SPF/DKIM kayıtlarına bakın.

Kaynaklar ve teknik referanslar

Bu hatayı çözemediyseniz

İlgili içerikler