我有一個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或什麼,我聽了。如果任何人有任何美妙的解決方案或替代方案,我全都耳聞。多謝你們!