如果我保留 php.ini 中设置的默认 sendmail 选项,它就可以正常工作并发送电子邮件。但是,如果我将 sendmail 路径更改为:
sendmail_path = "sendmail -t -i -x /var/log/mail.log"
mail() 返回 false。
如果我运行:
ls -l /var/mail/mail.log
我得到:
-rwxrw-rw- 1 www-data www-data 0 Sep 17 14:49 /var/mail/mail.log
我认为这是正确的。我希望 sendmail 记录我的电子邮件,但出于某种原因,它真的不想配合!
为清楚起见,这不是记录 PHP 与脚本交互的 mail.log 参数。设置后的输出如下所示:
[17-Sep-2016 15:38:20 Europe/London] mail() on [/home/server/www/dev1/htdocs/mail.php:15]: To: TO -- Headers: MIME-Version: 1.0 From: ME
答案1
这个例子中的问题在于我使用的是 -x 而不是 -X。一旦我输入了大写字母,它就正常工作了!
答案2
如果你使用 PHP 5.3.0 或更新版本,那么正确答案是使用邮件日志配置中的指令就像手动的。