PHP sendmail可以在Ubuntu命令行中使用,但不能从PHP文件中使用


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

我在Ubuntu上安装了带有PHP和apache的sendmail。当我尝试以下命令行时

php -r "mail('test@gmail.com', 'test', 'test')"'

它成功地发送了电子邮件。

但是,使用运行文件"testrongend_mail.php">

<?php
mail('test@gmail.com', 'test', 'test')
?>

不发送电子邮件。

使用.php文件的失败尝试生成日志条目:

`Jul  5 21:24:47 www sendmail[25603]: p661OlL7025603: from=www-data, size=106, class=0,

nrcpts=0,msgid=<201107060124.p661OlL7025603@www.server.com>,继电器=www-data@localhost

命令行的成功尝试生成日志条目:

    Jul  5 21:22:40 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]

有人知道可能发生什么吗?谢谢你的帮助!

PHP根据环境有单独的ini文件:

  • cli/php.ini
  • cgi/php.ini
  • php.ini

确保您已经在所有文件中进行了所有适当的更改,cgi通常用于Nginx和Lighttpd,但要确保复制所有3中的设置。

此外,您还可以运行phpinfo();函数来查看实际使用的设置。

这也可能是直接修复:PHP邮件问题与www数据

您尝试以web服务器用户身份发送电子邮件失败。你可能不想那样做。关键是向mail()传递更多的参数,以便在它将电子邮件交给注射器时覆盖这些默认值。

查看mail()手册页上的评论,会有很多帮助。

相关文章: