Trier ses mails par date

[Résolu]
Signaler
Messages postés
27
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
26 septembre 2011
-
Messages postés
27
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
26 septembre 2011
-
Bonjour à tous,
voilà, je suis en train de construire un webmail. J'ai une page où s'affiche tous les mails présents dans la boîte aux lettres. J'utilise pour afficher les headers la fonction imap_overview qui est un tableau. Or, il me trie les emails du plus vieux au plus récent, et moi, ce que j'aimerai bien, ce serait le contraire. J'ai vu qu'il existait une fonction imap_sort qui permet de trier les emails selon la date, la taille etc...

Le problème c'est que je ne vois pas où l'utiliser...

Est-ce que quelqu'un pourrait me dire à quel endroit on la met et si c'est bien la bonne fonction à utiliser...

Ce serait très sympa :)
;:!

10 réponses

Messages postés
3
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
25 novembre 2005

juste un oublie,

le 1 en fait c'est l'ordre du trie

et bien sur apres si tu veux afficher les donner de tes mails dans l'ordre, n'oublie pas de les afficher avec :



for($cpt=0;$cpt!= $nb_msg; $cpt++)

{

print $msg_entete[$ordre[$cpt]]

}

soit tableau de mails [ par ordre [ position dans le tableau de l'ordre] ]

faut dire que c'est vachement intuitif !!!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Whaou ça déterre ici

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
27
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
26 septembre 2011

Salut à tous,

merci pour ton aide. En fait, le problème venait de mon put***
d'hébergeur qui ne supportait pas la fonction imap_sort. Ce que j'ai
fait depuis, et c'est ce que tu viens de proposer comme solution (mais
sous une autre forme :)c'est trier le tableau overview en fonction des
clés et par ordre inverse grâce à krsort(). Voilà. En tout cas un grand
merci.

A bientôt.



Astyax
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut :-)

Tu as tout ici : Fonction imap-sort

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
Messages postés
27
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
26 septembre 2011

Resalut ;{)

je n'arrive toujours pas à utiliser imap_sort. J'ai essayé un bout de code trouvé sur le site phpmanual mais ça ne marche pas non plus...
J'utilise le code ci-dessous pour avoir un aperçu des mails et , je dois bien l'avouer, je ne sais pas où utiliser imap_sort pour trier les mails par date d'arrivée... Help, juste encore un peu s'il vous plait ;)

$mbox = imap_open ('{'.$serveur.'/imap:143}INBOX', "$login", "$password");

$headers = imap_headers ($mbox);
$entete=array();
while(list($key,$val) = each($headers)) {
  $overview = imap_fetch_overview($mbox,$key+1, 0);
  
  $header = $overview[0]; 
  $sujet=($entete['sujet']=$header->subject);
  $envoyeur=($entete['envoyeur']=$header->from); 
  $date=($entete['date']=$header->date);
  $taille=($entete['taille']=$header->size);
  $taille=round(($taille/1000),1);
  $idtmail=($entete['idtmail']=$header->msgno); 
  $vu=($entete['vu']=$header->seen);

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Dans ce cas essaye avec une solution détournée : la fonction array_multisort() pour classer ton tableau $entete[] en fonction de la date :-)

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
Messages postés
27
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
26 septembre 2011

Merci pour ton aide, Anthomicro, mais pour l'instant ça n'a rien donné... Y'a un truc que j'ai pas du pigé... Merci en tous cas :{)
Messages postés
3
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
25 novembre 2005

tu peux essayer ca :

imap_sort ( $val_sur_boite , SORTARRIVAL , 1 );

tu met ton pointeur sur ta boite, ton critére de trie (c'est des
variable prédéfini, donc tu met juste ton critére, regarde la doc en
cas, puis tu met ..... je sais pas trop à koi serve les autres champs)

et ca marche
Messages postés
3
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
25 novembre 2005

pas de pb

par contre je sais pas si tu sais comment passé un mail de non lut à lut en php ?

j'ai beau essayer mais bon ....

impossible

j'ai cherché et on dit que c'est impossible avec php.

j'espére que non, sinon mon apli est bancal
Messages postés
27
Date d'inscription
lundi 18 octobre 2004
Statut
Membre
Dernière intervention
26 septembre 2011

Salut
je pense que c'est tout à fait possible
grâce au flag (drapeau) que tu mets sur le message.
Va jeter un oeil ici http://www.nexen.net/docs/php/annotee/function.imap-setflag-full.php

a+