我在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()
手册页上的评论,会有很多帮助。