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.