티스토리 뷰
메일을 PHP로 받아서 파싱하기
[포인트]
sendmail 의 alias 기능을 이용해서 PHP 쉘 스크립트를 구동시킨다.
(다른 모든 메일서버에서도 비슷한 방법으로 사용이 가능하다.)
[준비사항]
1. sendmail 의 환결설정 파일에서 프로그램실행이 가능하도록 수정한다.
2. 특정한 이메일 아이디를 하나 선택한다.
[/etc/sendmail.cf 파일수정]
맨 아랫줄에 보면 아래와 같은 구문이 있다.. 대충 아래와 같이 수정한다.
Mprog, P=/bin/sh, ………
T=X-Unix/X-Unix/X-Unix,
A=/bin/sh -c $u
[/etc/aliases 에 계정추가]
# PHP Mailer
phpmailer: |/root/phpmailer.php
[/root/phpmailer.php 파일작성]
#!/usr/local/bin/php
<?php
$fp = fopen("php://stdin","r");
while(!feof($fp)) {
$line = fgets($fp, 1024);
#여기서 파싱작업을 수행함..
}
fclose($fp);
?>
Here is how you can pipe incoming email to a php script, so that email can be processed by a php script. This setup is tested on Centos 5 (RHEL 5).
1. Create a standalone php script, and make the file executable. Start the file with:
#!/usr/bin/php
<?php
...
?>
bash# chmod 755 {script-name}
2. Edit the /etc/aliases file, and modify the user you wish to process.
# /etc/aliases file...
admin: "|/path/to/php/script.php"
# Rebuild the alias file by running the 'newaliases' command.
bash# newaliases
3. Create the symbolic links in the /etc/smrsh folder, so that sendmail will know about the script. If you don't do this, you'll see "Service unavailable, php not available for sendmail program" error message.
bash# cd /etc/smrsh
bash# ln -s /usr/bin/php
bash# ln -s /path/to/php/script.php
4. Restart sendmail.
bash# service sendmail restart
For more information, please read reference links above.
'프로그래밍 > PHP' 카테고리의 다른 글
[PHP] 소켓 서버 및 클라이언트 참고용...(기본) (0) | 2008.08.20 |
---|---|
[PHP - shm_attach] 공유메모리 관련 참고. (0) | 2008.08.13 |
php - SMTP Mail Class (0) | 2008.06.22 |
메일 대용량 발송 관련 참조 (2) | 2008.06.22 |
php 템플릿 powered by Smarty (0) | 2008.06.22 |
- Total
- Today
- Yesterday