“Could not instantiate mail function” E-posta Hatası
- Yayınlandı:
- Son teknik kontrol:
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
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.
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.
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.
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.