如何获取管道邮件执行的 php 脚本的输出?

如何获取管道邮件执行的 php 脚本的输出?

我已经配置了一个电子邮件地址,将所有电子邮件转发到 /path/to/script.php

我以为我会通过电子邮件回复收到脚本的输出,但是它不起作用。

如何获取脚本的输出并以输出作为电子邮件内容发送回复电子邮件?

(*) 我知道我可以在脚本中使用 mail(),但我没有权限编辑该脚本,而且我无法复制该脚本,因为它会不时更新。

答案1

你可以再加一根管道tee将原始邮件放入临时文件中,然后通过管道传输到提到的只读脚本,最后通过管道传输到另一个 php 脚本来完成其余操作。

最后一个 php 脚本将从只读脚本中读取输出,并从临时文件中读取发件人地址,然后使用 mail() php 函数发送邮件。

| tee /path/to/tmp/file | /path/to/script.php | /path/to/another.php

顺便说一句,我从来没有使用过这种方法,也不知道是否可行,但看起来Can 的回答可以解决命令行宏,这是一个更好的解决方案,所以如果它确实有效,请在此处回复并告诉我们如何操作。

答案2

很抱歉,但除非脚本设计为可以正确运行,否则它不会知道如何仅仅因为您正在传输数据就自动回复。

如果您无法更改脚本,也许您需要编写另一个前端脚本来捕获输出并执行您的要求。

答案3

您可以修改您的邮件配置。它应该类似于

<run your php file with arguments> | sendmail <arguments>

如果不知道您的配置,就很难具体说明。

相关内容