开发者

PHP sendmail works in Ubuntu command line, but not from a php file

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜