Bonjour,
Je cherche à récuperer des fichiers textes en attachment, sur une boite gmail (mais il est vraisemblable que je change d'hébergement email, donc je préfère ne pas utiliser l'API Google).
J'ai parcouru différentes solutions sur le web, dont celle-ci qui me semble la plus aboutie (basée sur les librairies imaplib et email): https://gist.github.com/baali/2633554
Il me semble avoir appliqué les mêmes règles. Mon code repère effectivement les mails avec attachment mais il n'arrive pas à me les lister. Je ne vois pas où j'ai fait une erreur ou ce que je ne prends pas en compte.
J'ai pensé que ca pouvait etre dû au fait que ces mails avec attachment m'ont été forwardés, mais je me suis envoyé un attachment sans forward et c'est pareil.
Dans tous les cas, mon code affiche bien "multiparties!" mais pas "attachment inside!"
Voici mon code:
Avez-vous une idée? merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 email_login='blablabla@gmail.com' email_pwd='blablaaussi' import sys import imaplib import getpass import email import datetime M = imaplib.IMAP4_SSL('imap.gmail.com') try: M.login(email_login, email_pwd) except imaplib.IMAP4.error: print ("Erreur: echec login! ") quit() print ("On est loggé!" ) M.select(mailbox='INBOX') rv,items=M.search(None,"(ALL)") #rv,items=M.search(None,"(UNSEEN)") if rv == 'OK': print ("Items:") for msg in items[0].split(): typ,data=M.fetch(msg,'(RFC822.HEADER)') message=email.message_from_bytes(data[0][1]) varSubject=message['subject'] varFrom=message['from'] print ('Message: %s\nDe: %s\n'%(varSubject,varFrom)) if message.get_content_maintype() != 'multipart': continue else: print ("multiparties!") for part in message.walk(): if part.get_content_maintype() == 'multipart': continue if part.get('Content-Disposition') is None: print ("content dispo:%s" % part.get('Content-Disposition')) continue print ("attachments inside!") print ("content dispo:%s" % part.get('Content-Disposition')) nomfich=part.get_filename() print ("Attachment: %s" % nomfich) else: print ('Erreur: pas d\'acces aux emails\n') M.close() M.logout()
Partager