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

Python Discussion :

Protocole IMAP: Pb dans certains cas pour classer des emails à cause de l'uid


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Consultant finance des marchés
    Inscrit en
    Décembre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant finance des marchés

    Informations forums :
    Inscription : Décembre 2018
    Messages : 30
    Par défaut Protocole IMAP: Pb dans certains cas pour classer des emails à cause de l'uid
    Au sein d'un code qui dépend de la librairé IMAPLIB, la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def parse_uid(self, data):
        match = pattern_uid.match(data)
        return match.group('uid')


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pattern_uid = re.compile('\d+ \(UID (?P<uid>\d+)\)')
    qui est appelée comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    resp, data = self.m.fetch(str(self.i), "(UID)")
    msg_uid = self.parse_uid(data[0].decode())
    avec self.i étant l’identifiant («entier ») correspondant à l’id du mail dans la selection d’emails considérés.

    Et qui sert dans le script à passer un paramètre pour classer les courriels dans des sous-dossiers comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    result = self.m.uid('COPY', msg_uid, 'Inbox/VALORISATIONS/KGI')
    print("Result:", result[0])
    if result[0] == 'OK':
        mov, data = self.m.uid('STORE', msg_uid, '+FLAGS', '(\Deleted)')
        self.m.expunge()
        print("Mail moved to subfolder")
    renvoit dans certains cas (Allianz, Metzler, KGI, Mitsubishi) l’erreur suivante en faisant crasher le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Traceback (most recent call last):
      File "AutomatePDP_IMAP.py", line 3283, in <module>
        GestionBoitePDP.get_mail_deal_with_it(skipgetpasswords = None)
      File "AutomatePDP_IMAP.py", line 3264, in get_mail_deal_with_it
        msg_uid = self.parse_uid(data[0].decode())
      File "AutomatePDP_IMAP.py", line 111, in parse_uid
        return match.group('uid')
    AttributeError: 'NoneType' object has no attribute 'group'
    Mail moved to subfolder
    Si vous avez déjà rencontré ce genre d’erreur en utilisant le protocole IMAP que ce soit en JAVA ou en Python, merci de bien vouloir svp revenir vers moi.


    Cdt,

    Ludovic

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Salut,

    Citation Envoyé par Curveater Voir le message
    Si vous avez déjà rencontré ce genre d’erreur en utilisant le protocole IMAP que ce soit en JAVA ou en Python, merci de bien vouloir svp revenir vers moi.
    L'erreur dit juste que çà n'a pas trouvé d'UID (ou plutôt le pattern recherché) dans ce message là...
    Ce que vous devriez pouvoir vérifier par vous même.

    Après, c'est pas IMAP qui va coller les UID dans les messages...
    Et s'il y a des messages sans UID, il va falloir gérer le problème.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Consultant finance des marchés
    Inscrit en
    Décembre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant finance des marchés

    Informations forums :
    Inscription : Décembre 2018
    Messages : 30
    Par défaut Mails sans UID
    Citation Envoyé par wiztricks Voir le message
    Salut,



    L'erreur dit juste que çà n'a pas trouvé d'UID (ou plutôt le pattern recherché) dans ce message là...
    Ce que vous devriez pouvoir vérifier par vous même.

    Après, c'est pas IMAP qui va coller les UID dans les messages...
    Et s'il y a des messages sans UID, il va falloir gérer le problème.

    - W
    Hello Wiztricks,

    Merci pour ta réponse, as-tu des pistes ou de la documentation à me communiquer sur comment classer dans un sous dossier des mails sans UID, et peut-être m'indiquer si des fonctions dans imaplib existent pour détecter l'existence d'un UID?

    Merci pour ton aide.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Salut,

    Citation Envoyé par Curveater Voir le message
    as-tu des pistes ou de la documentation à me communiquer sur comment classer dans un sous dossier des mails sans UID, et peut-être m'indiquer si des fonctions dans imaplib existent pour détecter l'existence d'un UID?
    C'est vous qui farfouillez dans les boîtes aux lettres pour récupérer des mail, vous devriez avoir sous le coude la pile de RFC qui décrivent comment çà fonctionne.

    A savoir est ce que le message (qui n'a pas d'UID) est intègre (il faut regarder ce qu'il contient)?
    Est ce que la méthode que vous utilisez pour récupérer l'UID est "licite"?
    Comment le serveur de messagerie génère ses UID?

    Côté Python, la bibliothèque imaplib est d'assez bas niveau. Vous avez des bibliothèques externes qui devraient être plus facile à utiliser (pour ne pas avoir à décortiquer vous même le contenu des messages).
    A vous d'aller faire votre marché sur Internet.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Consultant finance des marchés
    Inscrit en
    Décembre 2018
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant finance des marchés

    Informations forums :
    Inscription : Décembre 2018
    Messages : 30
    Par défaut Tout mail a un uid
    Citation Envoyé par wiztricks Voir le message
    Salut,



    C'est vous qui farfouillez dans les boîtes aux lettres pour récupérer des mail, vous devriez avoir sous le coude la pile de RFC qui décrivent comment çà fonctionne.

    A savoir est ce que le message (qui n'a pas d'UID) est intègre (il faut regarder ce qu'il contient)?
    Est ce que la méthode que vous utilisez pour récupérer l'UID est "licite"?
    Comment le serveur de messagerie génère ses UID?

    Côté Python, la bibliothèque imaplib est d'assez bas niveau. Vous avez des bibliothèques externes qui devraient être plus facile à utiliser (pour ne pas avoir à décortiquer vous même le contenu des messages).
    A vous d'aller faire votre marché sur Internet.

    - W
    Hello Wiztricks,

    En fait je crois que tout mail est censé avoir un UID, et que l'erreur était l'utilisation de self.m.expunge() dans ma boucle. Il fallait expunger m après la boucle sinon celà décallais tous les MSNs. => Réponse plus détaillée dans https://stackoverflow.com/questions/...to-sub-folders

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Citation Envoyé par Curveater Voir le message
    En fait je crois que tout mail est censé avoir un UID, et que l'erreur était l'utilisation de self.m.expunge() dans ma boucle.
    Vous devriez jeter un œil au RFC4549 qui explique comment çà fonctionne. Après, il faut savoir retrouver l'UID dans le message (ou se faire aider par la bibliothèque qui...) et savoir programmer raisonnablement pour comprendre des messages d'erreurs comme "AttributeError".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/10/2019, 10h01
  2. Réponses: 1
    Dernier message: 18/07/2014, 15h39
  3. caméra bloquée dans certains cas pour rotation
    Par laurencew dans le forum OpenGL
    Réponses: 12
    Dernier message: 10/06/2011, 15h57
  4. [JOINTURES] interêt dans certain cas
    Par nicotine002 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/06/2006, 17h22
  5. [POO] Modèle objet: this inutilisable dans certains cas?
    Par vlord dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 13/08/2005, 10h41

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