У меня есть настройка procmail, работающая очень хорошо, похоже, что я не выполняю свой PHP-скрипт, когда он получает электронное письмо.Procmail setup, чтобы выполнить 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 или что-то еще, и я слушал. Если у кого-то есть какие-то замечательные решения или альтернативы, я все уши. Спасибо, парни!