J'essaye de créer un démon PHP qui se connecte à un serveur IMAP et qui traite les courriels dès qu'ils arrivent. Je l'ai presque sur le point de fonctionner, mais le démon continue de saisir les courriels d'origine trouve la première fois que le démon est chargé. Je crois que la raison est parce que j'ouvre la connexion IMAP dans le processus parent. Exemple ci-dessous:Problèmes avec PHP System_Daemon et la connexion 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);
Je voudrais éviter de mettre la connexion IMAP dans la boucle. Comment puis-je conserver la connexion au serveur IMAP en dehors de la boucle et recevoir de nouveaux messages?
Je supprime réellement les courriels dans la boucle après que j'ai fini de les traiter. Dois-je toujours faire ce que vous suggérez si je supprime les courriels? – mike
En outre, une fois le démon démarré, il ne semble pas trouver de nouveaux messages électroniques par la suite. C'est pourquoi je pense que cela a quelque chose à voir avec la connexion en dehors de la boucle. Il ne sait même pas que j'ai supprimé les courriels et continue de faire la boucle sur les mêmes. – mike
Ok. Peut-être avez-vous un problème de cache et vous pouvez essayer [imap_open] (http://fr.php.net/manual/fr/function.imap-open.php) avec l'option OP_SHORTCACHE? –