2011-04-08 7 views
6

안녕하세요 '받은 편지함에있는 모든 이메일을 PHP 스크립트로 전달하고 이메일 콘텐츠를 검색하여 파일에 저장하고 싶습니다. 그래서 나는 파이프 경로가있는 이메일 전달자를 올바르게 추가했다.PHP 파이프로 이메일 배관

주소 전달하기 :

파이프 [email protected] 프로그램에 :

/home/centuryw/public_html/stage/ana/osticket/upload/api/pipe.php 다음 스크립트를 pipe.php로 사용했습니다.

#!/usr/bin/php –q 
<? 
/* Read the message from STDIN */ 
$fd = fopen("php://stdin", "r"); 
$email = ""; // This will be the variable holding the data. 
while (!feof($fd)) { 
    $email .= fread($fd, 1024); 
} 
fclose($fd); 
/* Saves the data into a file */ 
$fdw = fopen("mail.txt", "w+"); 
fwrite($fdw, $email); 
fclose($fdw); 
/* Script End */ 

그러나 출력 파일이 없었으며 모든 이메일이 다시 내받은 편지함으로 반송됩니다. 누구든지 제발 도와 주실 래요?

+0

나는 pipe'ing을 결코 생각하지 않았다. 당신이 내 마음에서 만든 진행을 주셔서 감사합니다 :) – nerkn

+0

나는 단순한 PHP 스크립트 이메일을 보내려고하고 파일에 이메일 내용을 작성합니다. Cpanel을 사용하여 쉽게 메일 전달자를 추가 할 수 있습니다. 이것은 바보 같은 생각이 아닙니다. – Chanaka

답변

-1

실제로 이메일 상자 인 경우 IMAP (PHP)을 사용하지 않으시겠습니까? imap을 사용하여 메일을 읽을 수있는 수업이 많이 있습니다. @ phpclasses.org

+0

이것은 내 웹 메일 주소이며 모든 이메일을 내 웹 메일 주소로 오는 pipe.php 스크립트로 전달합니다.Cpanel을 사용하여 이메일 전달자를 추가했습니다. – Chanaka

+0

웹 메일 주소는 전자 메일 주소입니다. 그런 다음 이메일을 데이터베이스로 읽는 스크립트를 만듭니다. 그 스크립트에 cronjob을 설정하십시오. –

+4

폴링 메일은 스크립트에 라우팅하는 것보다 훨씬 효율적이지 않습니다. – symcbean

4

PHP 파일에 실행 비트가 설정되어 있는지 확인하십시오 (즉, chmod +x pipe.php).

+0

예. 755 ....로 파일 권한을 설정했습니다 .... :(스크립트에 오류가 없었습니다.) 출력 파일 (mail.txt)도 없었습니다 – Chanaka

+0

해당 파일에 쓸 수있는 권한이 있습니까? –

3

는 다음과 같은 두 옵션을 확인하려고 :

  • 먼저, PHP 파일을 그렇지 않으면 작동하지 않습니다 (소유자 그룹 이상)에서 실행 권한이 필요합니다.

  • 전달자를 사용할 때 무엇을 사용 했습니까? beginnig에서도 PHP 컴파일러 경로를 언급해야합니다.

    내가 최근 piping email content to php program의 전체 세부 절차에 대한 기사를 작성했습니다

, 당신은 봐하실 수 있습니다. 더 이상 질문이 있으면 알려주세요. 감사.

0

Chanaka -

이 더 출력 파일은 없지만, 이유가 해결되지 않습니다 ...

당신은 당신의 fopen() 호출에 a+을 사용하지 마십시오? w+ 인수는 이미 출력 파일에있는 모든 내용을 삭제합니다.

추 신 : 간단한 전자 메일 입력이 아닌 더미 텍스트를 내용으로 사용하여 출력 파일에 쓰는 간단한 테스트를 해 보았습니까?

제프 Cohan는

3

이 질문은 2 세입니다 알고 있지만 희망이 내가 그랬던 것처럼 그것을 통해 실수를 한단다 사람을 도움이 될 것입니다.

나는 정확히 같은 문제가 있었고 오류를 기록하는 등 많은 시간을 보냈습니다. 그런 다음 스크립트 (및이 스크립트)에 PHP 짧은 태그 (예 : <?)가 있고 PHP 설정 파일이 꺼져 있음을 확인했습니다. 태그를 <?php으로 변경하고 스크립트가 작동했습니다. 분명하지만 놓치기 쉬운 ...

+0

OP가 실행중인 것처럼 보입니다. PHP가 리눅스 박스에 있는데, 여러분의 요점은 가치가 없습니다 – meda

+1

@meda 이것은 PHP 설정 파일의 설정입니다. 그것은 OS와는 아무런 관련이 없습니다. – viniciusmunich