我正在使用我在https://stackoverflow.com/a/3176517/学到的东西,将本地机器上PHP中的mail()命令路由到一个文件。来自php.ini
:
sendmail_path ='tee /testmail/mail.txt'
但是当我添加一个additional_parameter
(-fwebmaster@example.com
)时,它会生成一个名为-fwebmaster@example.com
的附加文件,其中包含当前文件夹中的邮件内容。
完整示例:
$ cat | php -d sendmail_path='tee /testmail/mail.txt'
<?php
mail('test@example.com', 'subject', 'body', '', '-fwebmaster@example.com');
?>
To: test@example.com
Subject: subject
body
最后五行写入/testmail/mail.txt
和以及新创建的-fwebmaster@example.com
。
似乎-f
-参数被转发到tee
-命令。有办法防止这种情况发生吗?
(使用cat
会导致错误,PHP返回false
)
您可以通过在shell脚本中包装命令来忽略php传递的任何附加参数:
pseudo_sendmail
#!/usr/bin/env bash
tee /testmail/mail.txt
PHP配置:sendmail_path ='/path/to/pseudo_sendmail'