[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