[python] Parsování emailu

Jirka Vejrazka jirka.vejrazka na gmail.com
Pátek Duben 18 00:10:25 CEST 2008


>
> Ano, už to částečně funguje. Manuál jsem četl a dokonce jsem zkoušel
> použít
> funkci get_payload(), ale fakt mě nenapadlo, že to musím zavolat
> dvakrát...
> Nicméně to funguje, nevím proč, pouze na některé emaily; zde je můj kód:
>

> K přijmu zpráv používám modul poplib

Ahoj,

  myslim ze si zbytecne sam komplikujes zivot tim, ze beres puvodni zpravu
jako slozity string. Dokumentace k poplib jasne rika:
> Result is in form (response, ['line', ...], octets).
  Takze ten tvuj string je vlastne tuple, ve kterem te zajima prostredni
(druhy) clen coz je list slozeny z jednotlivych radek puvodni zpravy. Pak uz
jenom staci vedet (viz RFC 822 jestli se nepletu), ze oddelovacem mezi
hlavickou mailu a telem mailu je prvni prazdna radka. Takze na zjisteni tela
mailu nepotrebujes ani modul email, staci napsat pomerne jednoduchou funkci.
Jejim parametrem jsou tvoje ukazkova data tak jak je vraci poplib, tj. jako
tuple a ne jako string.

Funkce ktera vytahne "body" mailu:

def get_payload(msg):
    data = msg[1]
    res = []
    skip = True
    for line in data:
        if line != '' and skip:
            continue
        if line == '' and skip:
            skip = False
            continue
        res.append(line)
    return '\n'.join(res)

(cely testovaci program je v priloze)

  Jirka

P.S. ten druhy mail ti zrejme vubec neprosel diky tomu, ze v tele mailu jsou
apostrofy a poplib ten radek zabalil do uvozovek - je to videt v te priloze,
kterou jsem rucne "zformatoval"

P.P.S. get_payload se da asi napsat lepe, ale nechtej to po mne, prave jsem
se vratil z hospody ;-)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.py.cz/pipermail/python/attachments/20080418/0d5fb3ed/attachment.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: parse_email.py
Type: text/x-python
Size: 4015 bytes
Desc: not available
Url : http://www.py.cz/pipermail/python/attachments/20080418/0d5fb3ed/attachment.py 


Další informace o konferenci Python