【发布时间】:2013-12-09 17:57:03
【问题描述】:
我正在尝试在托管服务器上收到电子邮件时执行 PHP 脚本,并且我只能通过 cPanel 访问。
在this instructions 之后,我能够让脚本工作,但它仍然会将电子邮件的内容退回给发件人。
我尝试按照this post 的建议阅读标准输入,但没有任何改变。添加$emailtext = mailRead(); 会读取标准输入,添加echo $emailtext; 会将电子邮件文本写入退回的电子邮件中(所以我收到两次文本,一次来自我的echo,一次在退回的电子邮件末尾。)
退回邮件由Mail Delivery System <Mailer-Daemon@sti.stidev.com>发送,内容如下(我改过的部分加粗斜体):
此消息是由邮件传递软件自动创建的。
您发送的消息无法传递给它的一个或多个 收件人。这是一个永久性错误。以下地址 失败:
管道到|/path/to/php/script 由 email@address.com
生成在交付尝试期间生成了以下文本:
------ 管道到 |/path/to/php/script 由 email@address.com 生成 ------
X-Powered-By:PHP/5.2.17 内容类型:text/html
这里可以看到脚本回显的任何输出
------ 这是邮件的副本,包括所有标题。 ------
返回路径:...
如何摆脱退回邮件?
【问题讨论】:
-
您通过管道传递的脚本是否具有在服务器上执行 (755) 的正确权限?你也可以分享完整的转储,也许有语法错误或路径不正确。如果没有更多日志详细信息,就很难确定问题出在哪里。
-
脚本运行良好。如果它创建一个文本文件,则创建该文件;如果它回显了某些文本,则该文本会出现在反弹中。我试图用
exit(0)、exit(1)、exit、exit("some text")结束它并且没有退出调用。文本出现在弹跳中,数字不出现。 -
它有正确的权限吗?就像我已经说过的那样,如果没有完整的日志转储,则发布的代码中没有太多表明该问题的内容。几个月前我也遇到过同样的问题,而且是严格基于许可的。你看过stackoverflow.com/questions/14757430/…吗??