Mail returns false
I had similar problem , mail function always returns false even if the email is received successfully.
I found in php configuration file php.ini, I had set up
; For Win32 only.
;sendmail_from = [email protected]
; For Unix only.
sendmail_path = "/usr/sbin/sendmail -t -i -f "[email protected]"
I have changed it to below
; For Win32 only.
;sendmail_from = [email protected]
; For Unix only.
sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]
As per this sendmail_from is for win32 , so in *unix OS we need to set the value as shown in sendmail_path variable.
Regards Minesh
I just had the same problem. After a php upgrade, the mail function always returns false.
I used this little snippet to check it out:
<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
echo 'I am : ' . `whoami`;
$result = mail('[email protected]','Testing 1 2 3','This is a test.');
echo '<hr>Result was: ' . ( $result === FALSE ? 'FALSE' : 'TRUE') . $result;
echo '<hr>';
echo phpinfo();
The solution was setting a value in my php.ini for 'sendmail_from' and 'sendmail_path'. The correct values in my case were:
sendmail_from = "[email protected]"
sendmail_path = "/usr/sbin/sendmail -t -i"
(I'm using CentOS 5.3 w/ Zend Server CE.)
You could use ini_set() to set the value of 'sendmail_from', but the 'sendmail_path' var must be setup in your php.ini or http.conf.
- http://us3.php.net/manual/en/configuration.changes.modes.php
- http://us3.php.net/manual/en/ini.list.php