php - 在 php 中使用 "tee…"作为 sendmail_path 在使用 "-f"-参数时会产生一个额外的文件。

标签 php tee

我正在使用我在 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 传递的任何其他参数:

伪发送邮件

#!/usr/bin/env bash
tee /testmail/mail.txt

PHP 配置:

sendmail_path ='/path/to/pseudo_sendmail'

关于php - 在 php 中使用 "tee…"作为 sendmail_path 在使用 "-f"-参数时会产生一个额外的文件。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796084/

相关文章:

php - 使用 put 对象和 s3 捕获错误

PHP $_FILES 计数不正确

python - 如何将 sys.stdout 复制到日志文件?

php - 使用 Ajax 提交表单时更改消息的颜色

php - 使用 php 将 excel 表导入 mysql 表

php - 计数总是返回 1...但它存在吗?

python - Pyspark 未记录到文件

shell - 展示 bash shell stdout/stderr 重定向行为的备忘单

linux - 我想将输出通过管道传输到 bash 中的多个文件

linux - 强制为 shell 脚本中的每个命令运行 `tee`?