我试图通过PHP的邮件功能通过以下代码调用sendmail:
$to = 'blah@email.state.edu';
$subject = 'test';
$message = 'test';
$headers = 'From: mail@smartrek.blah.me' . "\r\n" .
'Reply-To: mail@smartrek.blah.me' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
Run Code Online (Sandbox Code Playgroud)
但是在我的mail.log中,我收到一条消息,指出from不是我在标题中指定的地址:
<www-data@Name>: Sender address rejected: Domain not found
Run Code Online (Sandbox Code Playgroud)
为什么是这样??我在ubuntu上运行PHP的fast-cgi为什么sendmail不使用我通过PHP代码指定的头文件?
我试图弄清楚为什么PHP中的邮件功能在通过Web浏览器(即apache)调用时失败,但我可以从命令行运行相同的脚本
php -f mailtest.php
这是我客户端的Fedora服务器之一,所以我不完全了解它,但如果我需要更改任何内容,我确实有root访问权限.
来自php.ini:
sendmail_path =/usr/sbin/sendmail -t -i
不确定这是否重要,但是/ usr/sbin/sendmail是/ etc/alternatives/mta的符号链接,这是一个符号链接回/usr/sbin/sendmail.sendmail.FWIW apache用户确实有权运行sendmail(直接从命令行测试sendmail).
OS: Fedora Core 7 Linux (kernel 2.6.23.17)
Apache: 2.2.8
PHP: 5.2.6
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感谢!