IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

E-mails -> avoir les récents


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut E-mails -> avoir les récents
    Bonjour,

    voici la situation:

    Je souhaite faire une page (en php) qui traitera mes mails. Cette page sera exécutée automatiquement tous les jours par un petit script.

    Ce qu'il me faudrait c'est que lors de chaque exécution, je ne traite que les nouveaux mails depuis la dernière fois ou il y a eu un traitement...

    Je sais pas si on peut jouer avec des fonctions imap ou alors stocker la date...

    Je sais pas si je suis assez claire...

    merci

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Les fonctions imap_* permettent de récupérer uniquement les nouveaux messages.
    J'ai même tendance à dire que par défaut ce sont les nouveaux messages qui sont récupérés, tout sauf ceux qui sont lu. Mais là sous réserve, je ne sais plus !

    Toujours est il qu'il y a moyen de faire ça avec imap.
    La doc sur imap : http://www.php.net/manual/fr/function.imap-open.php

  3. #3
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Les fonctions imap_* permettent de récupérer uniquement les nouveaux messages.
    J'ai même tendance à dire que par défaut ce sont les nouveaux messages qui sont récupérés, tout sauf ceux qui sont lu. Mais là sous réserve, je ne sais plus !
    C'est faux, elles récupèrent tous les messages présent dans la boite mail.
    Pour avoir les nouveaux ou les non lus il faut appliquer un filtre.

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Les fonctions imap_* permettent de récupérer uniquement les nouveaux messages.
    Justement laquelle ?

    Car je ne peux pas utiliser la fonction imap_fetch_overview puis avec la propriété "seen" puisque je ne souhaite pas ouvrir mes mails, ils resteront donc non-lus...

  5. #5
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Il me semble qu'avec imap_check() on obtient un tableau avec une info "Recent", 0 ou 1.
    Il y a le imap_headerinfo() aussi.

    Après, il faut effectivement parser les messages et filtrer tout ça en ne retenant que les messages ayant comme flag Récent 1.

    Mais ça fait une paye que j'avais fais des essai avec imap. Sais plus trop

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Non en fait il suffit d'utiliser imap_search()

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Citation Envoyé par RideKick Voir le message
    Non en fait il suffit d'utiliser imap_search()
    C'est-à-dire ?

  8. #8
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    imap_check() est tout à fait adapté à mon avis. Il te donne un état général.

  9. #9
    Membre habitué Avatar de Shinji62
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 135
    Points : 150
    Points
    150
    Par défaut
    J'ai lu sur php.net sur la fonction imap_check:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    You can NOT prevent imap_check from flagging new/recent messages when using POP3 enabling the "/readonly" or OP_READONLY flags or options.
    Attention..

  10. #10
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par piero53 Voir le message
    C'est-à-dire ?
    Et bien il faut utiliser imap_search() avec en argument ceux que tu désirent genre NEW pour les nouveaux messages, tu as une liste très claire dans la doc

  11. #11
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Oui oui je le sais.

    Mais je me demande sur quoi se base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imap_search($mbox,'NEW');
    Par rapport à la date, à la lecture etc...

    Si pendant 2 semaine ma page php n'est pas éxecutée (donc pas de parcours sur les mails) il y aura bien tous les derniers mails en new ?

    edit : après vérification, si j'envoie un mail sur la boîte, et que j'ouvre ma boite (exemple: gmail) il ne prend alors plus en compte le message reçu comme un 'new'

    Or je veux prendre tous les mails reçu depuis la dernière fois ou j'ai éxecuté mon fichier php (donc parcours des mails)

  12. #12
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    ok NEW je sais pas

    Tu peux mettre non lus voir même ajouter une date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $emails imap_seach($mbox, "UNSEEN");
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $emails imap_seach($mbox, "UNSEEN SETSINCE 01-Jan-2010");

  13. #13
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    Avec une date ça pourrait être bien. Par exemple je pourrais stocker la date (now()) dans un fichier texte puis dès que l'on éxecute la page on se base sur la dernière éxecution.

    Sauf qu'il y aura une exécution tous les jours, le must ça serait si avec la date je pourrais avoir l'heure. Et dans ce cas je serais alors précis.

    donc je ne sais pas comment faire

  14. #14
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    j'ai donc mis en place ce que je disais précédemment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	$fp = fopen ("date.txt", "w");
    	$day = date("d-M-Y");
    	fseek ($fp, 0);  
    	fputs ($fp, $day);  
    	fclose ($fp);
    Pas moyen d'être plus précis? Sinon ce n'est pas grave je garde ça.

  15. #15
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Je sais pas si l'heure est prise en compte a priori je ne vois pas on ne pourrait pas, le plus simple étant d'essayer.

  16. #16
    Membre régulier
    Inscrit en
    Décembre 2008
    Messages
    483
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 483
    Points : 105
    Points
    105
    Par défaut
    resolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/11/2005, 12h27
  2. [Mail] Comment garder les mails envoyés?
    Par JSuper_Kitten dans le forum Langage
    Réponses: 5
    Dernier message: 16/10/2005, 14h00
  3. Avoir les "QueryDefs" d'une autre base
    Par Invité dans le forum Access
    Réponses: 1
    Dernier message: 14/09/2005, 10h57
  4. avoir les log d'erreur mysql
    Par simoryl dans le forum Administration
    Réponses: 4
    Dernier message: 06/09/2005, 14h24
  5. [Scripts] Comment avoir les boutons style XP
    Par Didier69 dans le forum Général Dotnet
    Réponses: 26
    Dernier message: 18/05/2005, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo