Procmail - pozor na bastleni

Ondrej Sury sury.ondrej na globe.cz
Pondělí Říjen 14 11:01:24 CEST 2002


Lubos Kaspar <kaspar na cnb.cz> writes:

Pokud si upravite nasledujici skriptik, aby posilal jenom udaje z hlavicek,
tak se myslim da pouzit toto.  (Obcas skript nezvladne zparsovat nektere
emaily, ktere nejsou korektni, ale mam za to, ze to jsou spamy, takze to
neresim.)

O.

#!/usr/bin/env python2.2
import email
import os
import email.Message as _msg
import string

msg = email.message_from_file(os.fdopen(0));
nmsg = _msg.Message()

recipient = os.getenv("RECIPIENT",msg['delivered-to'])

for label in ('From','To','Date','Subject'):
        value = msg[label]
        if value == 'None':
                value = 'empty'
        nmsg[label] = value;

for part in msg.walk():
        if part.get_main_type('text').lower() == 'text':
                for label in ('Content-Transfer-Encoding','Content-Type'):
                        if part[label] != None:
                                nmsg[label] = part[label]

                payload = part.get_payload()
                if payload == None:
                        payload = 'prazdne telo/empty body'
                nmsg.add_payload('T:'+recipient+'-'+payload)
                break

print nmsg.as_string()

>> From: "Martin Chocholous" <chocholous na astarta.sk>
>> To: sendmail na linux.cz
>> Date: Mon, 14 Oct 2002 10:33:47 +0200
>> Subject: Re: Procmail
>> 
>> pozri moj dnesny mail () len vymen head za grep:
>> 
>> SHELL=/bin/sh
>> 
>> :0
>> 
>> {
>> :0c: normal.lock
>> /var/spool/mail/a_test
>> 
>> :0: forward.lock
>> | grep Subject \
>> | sendmail -oi chocholous na astarta.sk
>> }
>> 
>> Mozno ma byt pred Subject strieska ("^")
>
> Vazeni pratele,
>
> jen bych rad upozornil, ze pri podobnych hratkach je zahodno
> mit na pameti strukturu zpravy podle RFC 2822 (resp. rozsireni
> MIME podle RFC 2045 az 2049 a dodatku). Konkretne tedy napr. to, ze
> smysluplne hledani subjektu je pouze v oblasti hlavicek, tj. pred
> 1. prazdnym radkem, klicove slovo musi by na zacatku radku a
> koncit dvojteckou, muze byt libovolne slozeno z malych a velkych
> pismen, obsah hlavicky muze byt i na vice radcich, muze byt
> kodovany podle RFC 2047 (narodni abeceda - tu je asi treba pri
> preposilani do SMS konvertovat na anglickou) atd. atd. Jednoducha
> udelatka podobna vyse uvedenemu nemuseji tedy zdaleka vest ke
> kyzenym vysledkum a v nadseni pro ne je asi na miste jista
> zdrzenlivost.
> --
> Lubos Kaspar
>
>

-- 
Ondrej Sury - CIO                   Globe Internet s.r.o. http://globe.cz/
Tel: +420(2)35365000 Fax: +420(2)35365009     Planickova 1, 162 00 Praha 6


Další informace o konferenci Sendmail