2012-05-22 8 views
0

내가 전달할 수 (또는 파이프) fetchmail을 사용하여 PHP 스크립트 이메일을 알아 내려고하고있어. 나는이 일을 한 번도 해본 적이 없으며 내가 올바른 길을 가고 있는지 확신 할 수 없다. 내가 읽은 바에 따르면 MDA를 사용하여 메일을 전달해야한다고 생각합니다. MDA로 procmail을 사용하고 있습니다.fetchmail : 전자 메일을 PHP 스크립트로 전달하는 방법 - procmail을 사용 하시겠습니까?

여기 내 fetcmailrc 파일

set daemon 150 
set logfile /local/web/sites/sitename/mail/fetchmail.log 
poll blahblah with proto IMAP 
user Username there with password userpassword is Username here 
ssl 
fetchall 
no rewrite 
mda "/usr/bin/procmail -d Username -f %F -d %T $HOME/.procmailrc"; 

여기 내 procmailrc 파일입니다. 당신은 아래쪽에서 PHP 스크립트로 전자 메일을 보내려고합니다.

SHELL=/bin/csh 
DEFAULT=/var/mail/Username/ 
MAILDIR=/var/mail/Username/  

:0 
! `/usr/local/bin/php -f /local/web/sites/stack/htdocs/bin/catchmail.php` 

fetchmail을 실행하면 fowarding (php 로의 파이핑)이 작동하지 않습니다. 내 fetchmail.log는 말합니다 :

procmail: Insufficient prvileges 
procmail: Unknown user 

모든 포인터? 나는 올바른 방향으로 향하고 있는가? 감사.

답변

1

PHP로 파이핑 중이 아니므로 PHP 스크립트가 출력하는 주소로 전자 메일을 보내고 있습니다. 레시피가 설명하는 것을 수행 할 수 있도록 감탄 부호 (!)를 파이프 (|)로 변경하고 싶을 것입니다.

Procmail에서 오는 오류 메시지는 잘못 호출했거나 setuid 비트 또는 그와 같은 것이 없음을 나타냅니다. 나는 Fetchmail 전문가는 아니지만, mda 라인이 어지러운 것처럼 보입니다. 최소한 두 개의 상충되는 -d 플래그는 거의 필요하지 않습니다. 그게 바로 문제 야. .procmailrc에 대한 경로는 -d 옵션이있는 Procmail에 의해 추론됩니다. 이 같은 간단한 뭔가에보십시오 : 그런데

mda "/usr/bin/procmail -f %F -d %T" 

이 할당 SHELL=/bin/csh 정말 라인에서 보인다. 내 경험상, csh 또는 tcsh을 Procmail과 함께 사용하면 간단하게 작동하지 않습니다. (어쨌든, Csh Programming Considered Harmful을 읽으십시오.) 정확히 무엇을하고 있는지 알고 있다면 왜 그걸 가지고 있는지 설명하십시오. 그렇지 않으면, 다른 일을하기 전에 꺼내십시오.