我在Ubuntu上安装了带PHP和apache的sendmail。当我尝试以下命令行
时php -r "mail('test@gmail.com', 'test', 'test')"'
它成功发送了电子邮件。
但是,使用以下命令运行文件“test_send_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 =&lt; 201107060124.p661OlL7025603@www.server.com> ;, relay = 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]
有没有人知道可能会发生什么?谢谢你的帮助!
答案 0 :(得分:1)
PHP具有单独的ini
文件,具体取决于环境:
确保您已在所有文件中进行了所有适当的更改,cgi通常用于Nginx和Lighttpd,但是要复制所有3中的设置以确保。
此外,您可以运行phpinfo();
功能以查看实际使用的设置。
这也可能是直接修复:PHP mail issue with www-data
答案 1 :(得分:1)
也许你的系统会阻止apache发送邮件。看到这个类似的问题:
答案 2 :(得分:0)
您尝试失败的尝试是以网络服务器的用户身份发送电子邮件。你可能不想这样做。关键是将更多参数传递给mail()
,以便在将电子邮件发送到您的注入器时覆盖这些类型的默认值。
查看mail()
手册页的评论,这将有很多帮助。