Recuperer des infos sur une boite pop3

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 018 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

informatique7
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
cs_olid
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)
cs_espada
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
astuces_jeux
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 !!!
cs_Foxracing
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

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.