Recuperer des infos sur une boite pop3

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 123 fois - Téléchargée 28 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

Messages postés
4
Date d'inscription
vendredi 5 septembre 2008
Statut
Membre
Dernière intervention
1 mars 2010

comment faite pour accéder aux contacts
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008

@Espada: il faudra faire joujou avec les API de PHP pour le protocole IMAP ;o)
Messages postés
26
Date d'inscription
samedi 23 décembre 2006
Statut
Membre
Dernière intervention
27 février 2008

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
Messages postés
731
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
27 mai 2010

Si le lien en haut est bon !!!
Messages postés
6
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
30 novembre 2005

pourquoi ?? Notice: (null)(): Read-only POP3 access not available (errflg=2) in Unknown on line 0
Afficher les 11 commentaires

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.