2011-08-02 48 views
5

我知道这个问题上有不少帖子,但我仍然坚持看起来似乎。管道通过cPanel和PHP的电子邮件

我已经设置了cPanel,以便任何发送到[email protected]的电子邮件都将被PHP脚本拾取和处理。

现在经过多番争斗,我已经能够基本上将电子邮件转发到另一个地址,但它仍然将原始电子邮件反弹回发件人,这对我来说似乎很奇怪。下面是我使用的脚本:

#!/usr/bin/php -q 
<?php 

$fd = fopen("php://stdin", "r"); 

$email = ''; 

while(!feof($fd)) 
{ 
    $email .= fread($fd, 1024); 
} 

fclose($fd); 
mail('[email protected]', 'test', $email); 
?> 

而且我也试图控制与输出缓冲的问题,是你问之前,脚本chmod'd到755 ...

任何帮助真的将不胜感激,因为它现在开始困扰我。

+1

你修好了吗? cPanel中的error.log是否显示有关错误的任何信息?有可能在cPanel中管道时,必须放置完整的php路径和脚本名称。 – scalopus

+0

它尚未修复,我的错误日志根本没有任何关于此电子邮件脚本:/ –

+0

好吧,它现在已经修复了我自己,现在只剩下几天:/ –

回答

0

你的cPanel没有电子邮件转发功能吗? (http://docs.cpanel.net/twiki/bin/view/AllDocumentation/CpanelDocs/EmailFowarders)

+0

它的确如此,但是我将它转发到脚本上然后存储在数据库中 –

2

很可能是您的服务提供商中的电子邮件服务器出现故障。如果没有运行邮件守护进程并且给出适当的错误,PHP确实会发现,但它无法对实际传递的邮件进行任何适当的错误检查:毕竟,它可能会在一两天后失败,并且用户自然不会等待所有脚本结束的时间。

例如,后缀更新通常需要小心,因为它会自动将新配置投入使用。或者Dovecot已更新且未重新启动,并且由于默认情况,它将拒绝执行任何操作。