[python] email headers

"Ing. Vladislav Ludík" vlada na ludik.cz
Úterý Červenec 26 21:56:11 CEST 2011


Michal Molhanec napsal(a):
> 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?
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> __________ Informace od NOD32 6322 (20110725) __________
>
> Tato zprava byla proverena antivirovym systemem NOD32.
> http://www.nod32.cz
>
>
>
>   
Toto funguje skvěle.

Díky V.L.


Další informace o konferenci Python