mail() 有时不起作用,sendmail 参数存在问题

mail() 有时不起作用,sendmail 参数存在问题

php 中的 mail() 函数最近的运行情况很奇怪。

<?php
mail("[email protected]", "Subject", "Content");
?>

如果我在命令行中使用“php script.php”,上述脚本将起作用。但是,如果我链接到页面(http://domain.com/script.php),即使mail函数返回true,也不会发送邮件。

我谷歌了一下,找到了解决办法,上面写着“按如下方式修改 php.ini 文件”。

改变

sendmail_path =“/usr/sbin/sendmail-t-i”

sendmail_path =“/usr/sbin/sendmail-t”

现在它对我来说很管用。有人知道为什么删除参数 -i 可以解决问题吗?过去几个月它与 -i 配合得很好!!

答案1

来自sendmail 手册页

-i 忽略传入消息中单独一行上的点。如果您正在从文件中读取数据,则应设置此项。

因此,它可能取决于内容的格式,或者 mail() 内部如何决定读取内容然后将其提供给 sendmail(以前版本的 mail() 是否将内容字符串写入临时文件中然后调用 sendmail?)。

相关内容