我有一个procmail设置工作得很好,似乎执行我的PHP脚本没有问题,当它收到一封电子邮件。Procmail设置,执行PHP脚本
这里是.procmailrc文件文件的例子:
#BEGIN PROCMAIL SCRIPT FOR MAIL PARSING
DEFAULT=$HOME/Maildir/
MAILDIR=$HOME/Maildir
PMDIR=$HOME/.procmail
LOGFILE=$PMDIR/log.`date +%y-%m-%d`
SHELL=/bin/sh
:0
|`/usr/local/php53/bin/php /home/usrmail/email/script.php`
日志输出如下:
From [email protected] Mon Feb 18 20:49:35 2013
Subject: TEST
Folder: HELLO 2559
/bin/sh: HELLO: No such file or directory
只是在PHP脚本简单echo "HELLO";
,似乎好工作!
然而,当我尝试使用下面的代码实际上解析电子邮件,我得到下面的错误日志中:
$rawEmail = '';
if (($fp = fopen('php://stdin', 'r')) !== false) {
while (!feof($fp)) {
$rawEmail .= fread($fp, 1024);
}
fclose($fp);
}
$email = new Zend_Mail_Message(array(
'raw' => $rawEmail
));
From [email protected] Mon Feb 18 20:44:36 2013
Subject: Re: Test
Folder: Fatal error: Class 'Zend_Mail_Message' not found in /home/sy 2747
/bin/sh: Fatal: No such file or directory
这工作不正常很明显,我不知道为什么。首先,From头部经历了这一个,但不是另一个,似乎是间歇性的。
此外,目录(/ home/sy)被截断或者某个东西正在切断以导致错误。
我完全不熟悉Zend或procmail。我很高兴能够得到这么多,只是想分析一下电子邮件,以便我可以获取电子邮件的正文并将其放在某处。有人说服我这将是一个更好的方式,而不仅仅是使用IMAP或什么,我听了。如果任何人有任何美妙的解决方案或替代方案,我全都耳闻。多谢你们!