如何隐藏或删除管道错误(从 PHP 命令、从输出和从管道配置中)?

如何隐藏或删除管道错误(从 PHP 命令、从输出和从管道配置中)?

我在别名 Exim 文件中有一个管道。它工作正常,但是当脚本由于某种原因失败时,Exim 会将所有信息返回给用户。

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  pipe to |/usr/bin/php -q /path_to_my_script
    generated by [email protected]
    (ultimately generated from [email protected])
    local delivery failed

(and here appears all the PHP errors)
  1. 我在 PHP 配置中不显示错误,脚本中还有一个“error_reporting(0);”,还有一个“try/catch”来仅返回我想要的内容。但是 Exim,可能是因为它在其他环境中运行 PHP,我不知道为什么,但它显示了显示代码片段的 PHP 的所有错误。对此没有任何线索。我为解决这个问题所做的唯一一件事是删除 address_pipe 部分中的“return_output”:

由此

address_pipe:
  driver = pipe
  return_output

对此

address_pipe:
  driver = pipe

但我想知道如何避免 Exim 在传输该命令时显示 PHP 错误。

  1. 我如何删除错误电子邮件中的“管道”信息?我不希望用户知道脚本的路径和有关管道的信息

  2. 最重要的是,我如何自定义错误消息以便可以显示更加友好的消息?

谢谢 !

相关内容