IMAP 서버에 연결하여 들어오는 이메일을 처리하는 PHP 데몬을 만들려고합니다. 작동에 가까워 지지만 데몬은 원래 이메일을 계속 가져옵니다. 데몬이 처음로드 될 때 찾습니다. 그 이유는 내가 부모 프로세스에서 IMAP 연결을 열었 기 때문이라고 생각합니다. 아래 예 :PHP System_Daemon 및 IMAP 연결 관련 문제
if ($imapConnection=imap_open($authhost,$user,$pass) or die())
{
//start daemon
while()
{
//Grab email headers
$imapHeaders = imap_headers($imapConnection);
$count = sizeof($imapHeaders)
//loop the emails
for($i = 1; $i <= $count, $i++)
{
//process the email
//delete the email
}
System_Daemon::iterate(15);
}
}
imap_close($imapConnection);
루프 내에 IMAP 연결을 설정하지 않으려합니다. 루프 외부에서 IMAP 서버에 대한 연결을 유지하면서 새 이메일을 계속 수신하려면 어떻게해야합니까?
실제로 처리를 마친 후 루프 내의 이메일을 삭제합니다. 이메일을 삭제할 때도 내가 제안한 것을해야합니까? – mike
또한 일단 데몬이 시작되면 나중에 들어오는 새 전자 메일을 찾지 못하는 것입니다. 그래서 루프 밖에서 연결하는 것과 관련이 있다고 생각합니다. 이메일을 삭제하고 동일한 이메일을 계속 반복한다는 사실조차 모릅니다. – mike
확인. 어쩌면 당신은 캐시 문제가 있고 OP_SHORTCACHE 옵션으로 [imap_open] (http://fr.php.net/manual/en/function.imap-open.php)을 시도 할 수 있습니까? –