I installed sendmail with PHP and apache on Ubuntu. When I try the following command-line
php -r "mail('test@gmail.com', 'test', 'test')"'
it successfully sends the email.
However, running the file "test_send_mail.php" with:
<?php
mail('test@gmail.com', 'test', 'test')
?>
doesn't send an email.
The unsuccessful attempt with the .php file generates the log entry:
`Jul 5 21:24:47 www sendmail[25603]: p661OlL7025603: from=www-data, size=106, class=0,
nrcpts=0, msgid=<201107060124.p661OlL7025603@www.server.com>, relay=www-data@localhost
The successful attempt with the command line generates the log entry:
Jul 5 21:22:40 开发者_C百科www sm-mta[25533]: p661MevV025533: from=<root@www.server.com>,
size=352, class=0, nrcpts=1, msgid=<201107060122.p661Mecm025532@www.server.com>,
proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Does anyone have any idea what might be happening? Thank you for your help!
PHP Has separate ini
files depending on the environment:
- cli/php.ini
- cgi/php.ini
- php.ini
Make sure you have made all the appropriate changes in all the files, cgi is usually used for Nginx and Lighttpd, but replicate the settings in all 3 to be sure.
Also you can run the phpinfo();
function to see what settings are actually being used.
also this may be the direct fix: PHP mail issue with www-data
Your unsuccessful attempt is sending email as the web server's user. You probably don't want to do that. The key is to pass more parameters to mail()
so as to override these sorts of defaults as it hands the email to your injector.
Look in the comments on the man page for mail()
and there will be plenty of help to do that.
精彩评论