Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用;三通…&引用;当使用“as sendmail”时,php中的“u路径”会产生一个额外的文件-f"-参数_Php_Tee - Fatal编程技术网

使用;三通…&引用;当使用“as sendmail”时,php中的“u路径”会产生一个额外的文件-f"-参数

使用;三通…&引用;当使用“as sendmail”时,php中的“u路径”会产生一个额外的文件-f"-参数,php,tee,Php,Tee,我正在使用在上学到的内容将本地机器上PHP中的mail()命令路由到一个文件。从php.ini: sendmail_path ='tee /testmail/mail.txt' 但是当我添加一个附加参数时(-fwebmaster@example.com)它生成一个名为-fwebmaster@example.com包含当前文件夹中的邮件内容 一个完整的例子: $ cat | php -d sendmail_path='tee /testmail/mail.txt' <?php mail('

我正在使用在上学到的内容将本地机器上PHP中的mail()命令路由到一个文件。从
php.ini

sendmail_path ='tee /testmail/mail.txt'
但是当我添加一个
附加参数时
-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
$cat | php-d sendmail_path='tee/testmail/mail.txt'
致:test@example.com
主题:主题
身体
最后五行写入
/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'

这个参数还可以传递到什么地方?理想情况下,在这种情况下它会被忽略。我只是想知道。这意味着我甚至可以写
#/usr/bin/env bash tee/testmail/mail.txt cp/testmail/mail.txt/testmail/mail.eml
可同时创建“真实”电子邮件,以便于预览。