Recuperer des infos sur une boite pop3

Contenu du snippet

Nombre de message dans la boite de réception, emails non lus, etc.

C'est une version plus fouillée (et avec une autre methode) que mon source précédent :

http://www.phpcs.com/article.aspx?Val=684
Dans celui-ci, je recuperais tous les entetes de messages, puis comptais le nombre d'entetes... Plus lent, mais en parsant les entetes vous pourriez récuperer bocoup d'infos ;o) ... Mais attention à la limite de 30s du serveur qui est atteint pour environ 100 mails dans la boite :o((

La fonction ci-dessous renvoie un tableau associatif (etudiez le source pour connaitre le nom des champs ;o) ...Le parametre $type permet de choisir la categorie d'infos que vous voulez recuperer !

Cette fonction est plus rapide que l'autre pour recuperer les nombres d'emails car elle passe directement (et proprement) par les fonctions IMAP prévues à zet effet ! :op

Source / Exemple :


function pop3_mailboxinfos($server , $user , $passwd , $type="NB" , $port=110){ 
 /* Paramètres 

  • $server : serveur POP
  • $user : login
  • $passwd : mot de passe
  • $type : type de retour :
  • 'MSG' -> infos sur les messages uniquements (nombre, récents, non lus)
  • 'MAILBOX' -> infos sur les messages et sur la boite aus lettres
  • 'NB' -> nombre de messages récents et nombre total
  • Paramètre optionnel
  • $port : port de connexion au serveur
  • /
$connect = "{".$server."/pop3:$port"."}"; if ($mbox = @imap_open($connect, $user, $passwd, OP_READONLY)) { $type = strtoupper($type); switch($type) { case 'MSG' : if ($status = @imap_status($mbox, $connect."INBOX", SA_ALL)) { $retour['messages'] = $status->messages; $retour['recents'] = $status->recent; $retour['non lus'] = $status->unseen ; $retour['uidnext'] = $status->uidnext; $retour['uidvalidity'] = $status->uidvalidity; } else $retour = imap_last_error(); break; case 'MAILBOX' : if ($check = @imap_check($mbox)) { $retour['date'] = $check->Date; $retour['driver'] = $check->Driver; $retour['mailbox'] = $check->Mailbox; $retour['messages'] = $check->Nmsgs; $retour['recents'] = $check->Recent; } else $retour = imap_last_error(); break; case 'NB' : $retour['messages'] = @imap_num_msg($mbox); $retour['recents'] = @imap_num_recent($mbox); break; default : $retour = array(); } return $retour; } else return imap_last_error(); }

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.