【发布时间】:2013-07-03 08:28:21
【问题描述】:
我了解如果未设置 error_log 配置指令,则会将错误发送到 SAPI 错误记录器。例如,它是 Apache 中的错误日志或 CLI 中的 stderr。
因此,如果我从命令行运行脚本,则会直接显示错误(除非重定向)。如果我从 cron 运行脚本,错误会通过电子邮件发送给 cron 作业所有者。那么如果我通过管道将电子邮件发送到脚本会发生什么?
我刚开始编写一个脚本来处理退回邮件。我已经读过,如果脚本输出任何内容,它将反弹回发件人。我不确定这是否适用于所有输出或仅适用于 STDOUT。还是 CLI 中的 STDERR 等于 STDOUT?
如果我将error_log 配置指令设置为文件,我是否可以使用trigger_error 和error_log 函数安全地输出错误消息而不向发件人发送退回邮件?
由于脚本正在处理退回邮件,我真的想避免退回给发件人。我想这可能会导致无限循环。而且由于错误日志位于另一个目录中并且路径是在包含文件中设置的,因此在我设置配置指令之前,很可能会出现问题。在脚本的最顶部使用ini_set('error_log', 'syslog'),然后尽快将其更改为我的文件是个好主意吗?
【问题讨论】:
-
“将电子邮件传送到脚本”是什么意思?
-
使用
| /path/to/php /path/to/script将收到的电子邮件(针对特定地址)发送到脚本。该脚本将读取 STDIN 以获取传入的电子邮件。 -
我想你会使用一个自定义的 POP 客户端,它将你的邮箱内容回显到
stdout? -
邮件不会发送到邮箱,因为它是通过 qmail 传送到脚本的。没有邮箱。地址是别名。该脚本将解析电子邮件以获取一些信息并将一些内容存储到数据库中。
标签: php error-handling stderr