PHP mail() çalıştırırken “sh: -t: not found” hatası

Merhaba,

PHP ile mail() çalıştırırken

sh: -t: not found

hatası alıyorsanız, sendmail_path set etmemiş olabilirsiniz.
Muhtemelen php.ini dosyanız olması gerektiği yerde değildir ya da sendmail yüklü olmayabilir.
php.ini var mı, öncelikle onu kontrol edelim (command line kullanabilenler, dedicated vps vs kullananlar icin)

php -i | grep php.ini

Eğer command line olarak erişim sağlayamıyorsanız, web sunucunuz üzerinden phpinfo(); ile aynı değerleri alabilirsiniz.

Çıktı şöyle olmalı:

Configuration File (php.ini) Path => /usr/local/php/lib

Loaded Configuration File => /usr/local/php/lib/php.ini

Buradaki /usr/local/php path’i sizde değişkenlik gösterebilir. Fakat bakılması gereken en önemli alan “loaded configuration file”, burada bir php.ini göremiyorsanız, configuration path içine php.ini oluşturabilirsiniz.
Default bir php.ini yüklemeniz yeterli olacaktır.
Ayrıca, php.ini olmadan phpnin çalışması da normaldir. Default değerlerle çalışmaktadır.

Sendmail yüklü mü?

whereis sendmail

çalıştırdığınızda

sendmail: /usr/sbin/sendmail /usr/lib/sendmail /usr/share/sendmail /usr/share/man/man8/sendmail.8.gz

çıktısı almanız lazım.php.ini varsa ve sorun düzelmiyorsa, php.ini’de sendmail_path değerini “/usr/sbin/sendmail -i -t”  olarak set edebilirsiniz. “-i ve -t” parametresini unutmayın. “man sendmail” ile ne işe yaradıklarına bakabilirsiniz.

Eğer hosting müşterisiyseniz ve buradaki çözümleri uygulamak istiyorsanız, hosting firmanızın teknik ekibine bildirmeniz gerekebilir. Buradaki değişikliklein tamamı sunucu tabanlıdır. Eğer böyle bir erişiminiz yoksa,

ini_set(“sendmail_path”, “/usr/sbin/sendmail -i -t”);

ile her php scriptinizde sendmail_path set edebilirsiniz…

Umarım yararlı olur.

Paylaş

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir