2011-07-17 5 views
2

PHP 스크립트로 리디렉션 된 특정 이메일 주소로 수신 이메일을 보내려고합니다. 나는 주소와 도메인 정보가있는 Postfix를 MySql에 저장하고있다.접미어 별칭과 MySQL로 파이핑

에서의/etc/별칭 :

#Other aliases 
php_mail_handler: "| /usr/bin/php -q /home/mysite/htdocs/mail_handler.php" 

이 어느 정도 작동하는 것 같다 내가 배관은 MySQL의 테이블에서 할 수없는 생각으로, 주소는 시스템 별칭 테이블 내에서 페어링 /var/log/mail.info가 들어 있으므로 다음

Jul 17 14:53:29 mysite postfix/qmgr[21974]: 39F726888003: from=<[email protected]>, size=1476, nrcpt=1 (queue active) 
Jul 17 14:53:30 mysite postfix/local[21981]: 39F726888003: to=<[email protected]>, orig_to=<[email protected]>, relay=local, delay=0.95, delays=0.28/0.01/0/0.66, dsn=2.0.0, status=sent (delivered to command: /usr/bin/php -q /home/mysite/htdocs/mail_handler.php) 

그러나, PHP 스크립트가 (이 로그 파일에 표준 입력에 타임 스탬프 아무것도 기록) 실행하지 않습니다. 스크립트는 명령 행 또는 아파치를 통해 호출 될 때 작동합니다. 그 코드는 다음과 같습니다 :

왜 작동하지 않거나 디버깅하는 방법에 대한 아이디어가 있습니까? PHP 오류 로그에 오류가 나타나지 않으므로 CLI의 php.ini에 지정했습니다.

많은 감사,

매트

답변

1

당신이 사용자 아무도 명령 행에서 스크립트를 실행하려고 했습니까?

su -c "/usr/bin/php -q /home/mysite/htdocs/mail_handler.php" nobody 

그런 다음 테스트를 실행할 때 기존 이메일 주소를 사용하려고하면 보낸 사람 이메일에 오류의 일부가 표시 될 수 있습니다.

+0

나는 이제 'nobody'를 사용하여 실행하려고 시도했으며 이는 권한 오류로 인해 로그 파일을 열 때 실패하므로 명확하게 오류가있는 곳입니다. 내 로그 파일과 디렉토리, 디렉토리는 chmod 0777입니다. 오류를 해결하려면 어떻게해야합니까? 당신의 도움을 주셔서 감사합니다. – matfr

+0

당신은/tmp에 로그온을 시도 할 수 있습니다. 생성 된 파일은 최소한 디버깅을 위해 생성자가 소유합니다. 진정한 장기적인 솔루션을 얻으려면 디렉토리와 그의 부모에 대한 충분한 권한 (그리고 777 가지의 권리를 부여하십시오)을 찾아야합니다 (아마 모든 부모 디렉토리에 x 권한이 필요합니다) – regilero

관련 문제