Récuperer des attachments de mails sur gmail
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:
Code:
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() |
Avez-vous une idée? merci pour votre aide :)