Recuperer des infos sur une boite pop3

0/5 (11 avis)

Snippet vu 8 534 fois - Téléchargée 30 fois

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

Ajouter un commentaire Commentaires
informatique7 Messages postés 4 Date d'inscription vendredi 5 septembre 2008 Statut Membre Dernière intervention 1 mars 2010
1 mars 2010 à 10:39
comment faite pour accéder aux contacts
cs_olid Messages postés 296 Date d'inscription lundi 2 septembre 2002 Statut Membre Dernière intervention 28 janvier 2008
5 juil. 2007 à 11:19
@Espada: il faudra faire joujou avec les API de PHP pour le protocole IMAP ;o)
cs_espada Messages postés 26 Date d'inscription samedi 23 décembre 2006 Statut Membre Dernière intervention 27 février 2008
5 juil. 2007 à 10:53
salut, j'ai pas bien compris le code mais ça va!
dites, y a pas un truc pour marquer un email comme lu???
please, aider moi
astuces_jeux Messages postés 731 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 27 mai 2010
5 janv. 2007 à 09:12
Si le lien en haut est bon !!!
cs_Foxracing Messages postés 6 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 30 novembre 2005
30 nov. 2005 à 17:02
pourquoi ?? Notice: (null)(): Read-only POP3 access not available (errflg=2) in Unknown on line 0

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.