>
> 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 ;-)
m1=('+OK Message follows (1562 bytes).', 
['Reply-To:=?iso-8859-2?Q?Jakub=20Voj=E1=E8ek?= <[EMAIL PROTECTED]>',
 'Received: from kubuvpocitac (r3ai164.net.upc.cz [213.220.226.164])',
 '\tby email-relay2.go.seznam.cz (Seznam SMTPD [EMAIL PROTECTED]) with ESMTP;', 
 '\tWed, 16 Apr 2008 18:46:52 +0200 (CEST)  ',
 'Message-Id: <[EMAIL PROTECTED]>',
 'From: =?iso-8859-2?Q?Jakub=20Voj=E1=E8ek?= <[EMAIL PROTECTED]>',
 'To:[EMAIL PROTECTED]', 
 'Subject: predemr', 
 'Date: Wed, 16 Apr 2008 18:46:52 +0200 (CEST)',
 'Mime-Version: 1.0',
 'Content-Type: multipart/alternative;',
 '\tboundary="----=_NextPart_000_004A_01C89FF2.3C51E080"', 
 'X-Priority: 3',
 'X-Msmail-Priority: Normal', 
 'X-Mailer: Microsoft Outlook Express 6.00.2900.3138',
 'X-Mimeole: Produced By Microsoft MimeOLE V6.00.2900.3198',
 'X-Smtpd: [EMAIL PROTECTED]', 
 'X-Seznam-User: [EMAIL PROTECTED]', 
 'X-Qm-Mark: email-qm1<17546722>',
 'X-Seznam-Ffp: 680759260', \
 '', 
 'This is a multi-part message in MIME format.', 
 '', 
 '------=_NextPart_000_004A_01C89FF2.3C51E080', 
 'Content-Type: text/plain;', 
 '\tcharset="iso-8859-2"',
 'Content-Transfer-Encoding: quoted-printable', 
 '', 
 'hhahsd',
 '------=_NextPart_000_004A_01C89FF2.3C51E080', 
 'Content-Type: text/html;',
 '\tcharset="iso-8859-2"', 
 'Content-Transfer-Encoding: quoted-printable', 
 '', 
 '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">',
 '<HTML><HEAD>', 
 '<META http-equiv=3DContent-Type content=3D"text/html; =',
 'charset=3Diso-8859-2">', 
 '<META content=3D"MSHTML 6.00.2900.3314" name=3DGENERATOR>',
 '<STYLE></STYLE>',
 '</HEAD>',
 '<BODY bgColor=3D#ffffff>',
 '<DIV><FONT face=3DArial size=3D2>hhahsd</FONT></DIV></BODY></HTML>',
 '', 
 '------=_NextPart_000_004A_01C89FF2.3C51E080--'
 ], 
 1562)

m2=('+OK Message follows (1601 bytes).', 
['Reply-To: =?iso-8859-2?Q?Jakub=20Voj=E1=E8ek?= <[EMAIL PROTECTED]>',
 'Received: from kubuvpocitac (r3ai164.net.upc.cz [213.220.226.164])',
 '\tby email-relay2.go.seznam.cz (Seznam SMTPD [EMAIL PROTECTED]) with ESMTP;',
 '\tThu, 17 Apr 2008 17:10:38 +0200 (CEST)  ',
 'Message-Id: <[EMAIL PROTECTED]>',
 'From: =?iso-8859-2?Q?Jakub=20Voj=E1=E8ek?= <[EMAIL PROTECTED]>',
 'To: [EMAIL PROTECTED]',
 'Subject: predemr',
 'Date: Thu, 17 Apr 2008 17:10:36 +0200 (CEST)',
 'Mime-Version: 1.0',
 'Content-Type: multipart/alternative;',
 '\tboundary="----=_NextPart_000_00B7_01C8A0AD.F44443C0"',
 'X-Priority: 3',
 'X-Msmail-Priority: Normal',
 'X-Mailer: Microsoft Outlook Express 6.00.2900.3138',
 'X-Mimeole: Produced By Microsoft MimeOLE V6.00.2900.3198', 
 'X-Smtpd: [EMAIL PROTECTED]',
 'X-Seznam-User: [EMAIL PROTECTED]',
 'X-Qm-Mark: email-qm1<17566836>',
 'X-Seznam-Ffp: -1361842557',
 '',
 'This is a multi-part message in MIME format.',
 '',
 '------=_NextPart_000_00B7_01C8A0AD.F44443C0', 
 'Content-Type: text/plain;',
 '\tcharset="iso-8859-2"', 
 'Content-Transfer-Encoding: quoted-printable',
 '',
 "'sdfdf','sdf'", 
 '------=_NextPart_000_00B7_01C8A0AD. F44443C0',
 'Content-Type: text/html;', 
 '\tcharset="iso-8859-2"',
 'Content-Transfer-Encoding: quoted-printable',
 '', 
 '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0  Transitional//EN">', 
 '<HTML><HEAD>',
 '<META http-equiv=3DContent-Type content=3 D"text/html; =', 
 'charset=3Diso-8859-2">',
 '<META content=3D"MSHTML 6.00.2900.33 14" name=3DGENERATOR>',
 '<STYLE></STYLE>',
 '</HEAD>',
 '<BODY bgColor=3D#ffffff>',
 '<DIV><FONT face=3DArial =', 
 "size=3D2>'sdfdf','sdf'</FONT></DIV></BODY></HTML >",
 '',
 '------=_NextPart_000_00B7_01C8A0AD.F44443C0--'
], 1601)

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)
        
        
print get_payload(m1) 
print get_payload(m2)
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem