#! /usr/bin/env python
# -*- coding: utf-8 -*-
import mailbox, rfc822,email
import sys, os, string, re
fout = file('mailbox_tag','w')
mb = mailbox.mbox('test_mailbox')
for message in mb:
subject = message['subject']
AU = message.get_from()
TI = message['subject']
DT = message.__getitem__('date')
DSt = message.__getitem__('To')
DSc = message.__getitem__('Cc')
PJ = message.__getitem__('filename')
#contenu dans certains cas plusieurs messages
# la PJ est contenue dans le second message
if message.is_multipart():
listeCT = message.get_payload()
#print 'from :'+message.get_from()
#le titre de la PJ se trouve dans le second message
PJ = str(listeCT[1].get('Content-Disposition'))
#print PJ
nameFile = PJ[PJ.rfind('filename=')+10:len(PJ)-1]
#encoding du sous-message
contentType = str(listeCT[0].get('Content-Type'))
encoding = contentType[contentType.rfind('charset')+8:len(str(listeCT[0].get('Content-Type')))]
#print 'PJ type : '+PJ.__class__.__name__
CT = str(listeCT[0])
else:
contentType = message.get('Content-Type')
encoding = contentType[contentType.rfind('charset')+8:len(str(contentType))]
#print encoding
CT = message.get_payload()
## contentType = str(CT.get('Content-Type'))
## print contentType
print TI
#problème encoding
if encoding =='ISO-8859-1':
TI=TI.encode('ISO-8859-1').decode('UTF-8')
print 'encoding iso :'+ TI
else:pass
#supprimer les retour chariot du contenu
NewCT = CT.replace('\n','')
## print message.get_param('charset')
## print message.get_content_type()
## print '\n'
#écrire le fichier
fout.write('AU ' + AU+'\n')
fout.write('TI '+ TI +'\n')
fout.write('DT '+ DT+'\n')
fout.write('DS '+ str(DSt) +'\n '+str(DSc))
fout.write('\n')
fout.write('CT '+ str(NewCT) + '\n')
fout.write('PJ '+ str(nameFile) + '\n \n \n')
fout.write('\n \n')
#messageestdetype mboxMessage et pas email.message