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