[python] email headers
Michal Molhanec
mol-python na seznam.cz
Úterý Červenec 26 20:24:26 CEST 2011
Dne 26.7.2011 17:40, "Ing. Vladislav Ludík" napsal(a):
> Zdravím všechny znalé pythonu.
>
> Může mi někdo poradit s dekódováním hlaviček emailů ?
>
> Jde o toto:
>
> Ve složce /var/mail/ na linuxu přicházející emaily potřebuju elegantně zdekódovat.
> Co se týká vlastních zpráv, nemám problém:
>
> def ebox(inbox):
> 'Zpracuje email inbox'
> fp = open(inbox, 'rb')
> mbox = mailbox.UnixMailbox(fp, email.message_from_file)
>
> for msg in mbox:
> for part in msg.walk():
> if part.get_content_maintype() == 'text':
> data = part.get_payload(decode=True)
> # zpracuju data
>
> Problém mám jen s hlavičkama. Když použiju například
> headers = Parser().parse(fp)
> tak ten ve výsledku dává při více zprávách za sebou vždy první nalezený objekt, ale další už ne:
>
> print 'To: %s' % headers['to']
> print 'From: %s' % headers['from']
> print 'Subject: %s' % headers['subject']
>
> Můj dotaz tedy je: jak skloubit jednoduše obě funkce?
> Složitě to umím.
Něco jako
def ebox(inbox):
'Zpracuje email inbox'
fp = open(inbox, 'rb')
mbox = mailbox.UnixMailbox(fp, email.message_from_file)
for msg in mbox:
print 'To: %s' % msg['to']
print 'From: %s' % msg['from']
print 'Subject: %s' % msg['subject']
for part in msg.walk():
if part.get_content_maintype() == 'text':
data = part.get_payload(decode=True)
# zpracuju data
by nefungovalo?
Další informace o konferenci Python