Eu configurei um gateway SMS kannel no meu FreeBSD 7.2 - o serviço funciona muito bem.
Agora estou tentando configurar um recurso de email2sms. Para isso eu criei um usuário do sistema chamado kannel
e todos os e-mails são encaminhados para este usuário.
No diretório home de kannel
eu tenho os seguintes arquivos.
-rw-r--r-- 1 kannel kannel 81B 17 jan 09:50 .procmailrc
lrwxr-x--- 1 root kannel 58B 14 jan 13:24 email2sms.php @ -> some-what-some-where
-rw-rw-rw- 1 root kannel 5,8K 17 jan 09:52 log.email2sms
-rw------- 1 kannel kannel 1,3K 17 jan 09:50 procmail.log
-rw-r----- 1 root kannel 606B 14 jan 13:28 rawmail.txt
O arquivo email2sms.php
é um link simbólico para o script a php (ZendFramework Application) que recebe o email de STDIN
e usa o ZendFramework para analisar esse email em um objeto. Em seguida, faça uma solicitação http para o gateway SMS. O script php funciona.
Conteúdo de .procmailrc
LOGFILE=$HOME/procmail.log
VERBOSE=yes
:0
| php email2sms.php >> log.email2sms
Do último e-mail enviado, eu tenho isso em procmail.log
procmail: [97744] Mon Jan 17 09:50:40 2011
procmail: [97744] Mon Jan 17 09:50:40 2011
procmail: Assigning "LASTFOLDER= php email2sms.php >> log.email2sms"
procmail: Executing " php email2sms.php >> log.email2sms"
procmail: Notified comsat: "kannel@:/home/user/kannel/ php email2sms.php >> log.email2sms"
From [email protected] Mon Jan 17 09:50:40 2011
Subject: asdf as
Folder: php email2sms.php >> log.email2sms 2600
Mas não há nova saída para log.email2sms, e o script deve mostrar o assunto do email.
Se eu sudo
como o usuário kannel
e canalizar um arquivo com e-mail bruto para o script, ele será executado muito bem.
[root@webserver /home/user/kannel]# /home/user/kannel/ sudo -u kannel cat rawmail.txt | php email2sms.php >> log.email2sms
E o comando é enviado para log.email2sms
conforme desejado.
Alguma idéia pessoal?
UPDATE
Mudei o phpscript para apenas die('bail me out scotty');
e o script foi executado de .procmail ao enviar um email. O arquivo log.email2sms
é anexado com o texto da fiança.
Portanto, talvez o conteúdo do e-mail não seja canalizado corretamente ou a classe Zend Framework que manipula os dados canalizados de STDIN esteja com bugs.