[linux] Re: >From

Kees Theunissen theuniss op rijnh.nl
Ma Nov 14 21:08:03 CET 2005


On Mon, 14 Nov 2005, Folkert van Heusden wrote:

>> >What da you think?
>> >:0
>> >* ^>From[ ]
>> >{
>> >  LOG="something went fishy"
>> >
>> >  :0 fhw
>> >  | sed -e '1s/>From/\nF/'
>> >}
>> Ik denk dat je er beter aan doet om uit te zoeken waar het mis gaat,
>> en dan het probleem bij de bron aanpakken.
>> Bij jouw aanpak zie ik twee problemen:
>> -- Midden in berichten wordt "From " aan het begin van een regel
>>    vervangen door ">From " om te voorkomen dat die regel gezien wordt
>>    als het begin van een nieuw bericht. Als jij dat weer ongedaan
>>    maakt dan introduceer je daarmee dus ook weer de kans op een foute
>>    interpretatie.
>
>Is 't niet zo dat sed -e '1s' betekent: wijzig alleen de eerste regel?

Oeps beetje slordig gelezen. Ik had die 1 niet gezien.
Maar het vervangen van "From " door ">From " gebeurt niet op de
eerste regel van een mailtje. Dat gebeurt als er een regel midden
in een mailtje met "From " begint. Ergens moet er een programma zijn
dat een mailbox leest en twee opeenvolgende mailtjes interpreteert als
één mailtje. De meest waarschijnlijke oorzaak van zo'n foute
interpretatie is denk ik een ontbrekende lege regel voorafgaand aan
de "From ".

Een programma dat die foute interpretatie maakt die ziet een lap tekst
met ergens in het midden een regel die met "From " begint. Stel dat dit
gebeurt met een POP3 of een IMAP daemon bij jouw provider. Die daemon
kan dan zelf die ">" toevoegen, maar hij kan ook de hele lap tekst
(let wel: twee aan elkaar geknoopte mailtjes) ongemodificeerd doorgeven.
In dat geval zal jouw fetchmail of jouw MTA of jouw whatever die ">"
er wel in zetten. En dat zal nooit op de eerste regel zijn.

Een ander scenario is dat een mailclient bij jou de mailbox alsnog
gaat verzieken nadat de mailtjes in eerste instantie zonder die ">"
in de mailbox gezet zijn.

Ik kan een heleboel plekken verzinnen waar een mailbox verknald kan
worden, maar ik kan me geen situatie voor de geest halen waarin
procmail bij de mail-delivery een mailtje krijgt aangeboden met op
de éérste regel een ">From ".


>
>> -- Als de "From " aan het begin van een mail vervangen is door
>>    ">From " dan betekent dat dat al ergens eerder twee mailtjes aan
>>    elkaar geplakt werden. Grote kans dus dat jouw procmail twee
>>    mailtjes tegelijk voor zijn kiezen gekregen heeft.
>
>procmail doet toch al locking?

Het ging me niet om locking.
Als procmail die ">" te zien krijgt is die ">" er ergens eerder tussen
gezet. Vanaf dat moment maakt het volledige mailtje (headers en body)
waarvan de "From "-regel is veranderd deel uit van de body van het
voorgaande mailtje. Want door het toevoegen van die ">" is de scheiding
tussen twee mailtjes opgeheven.
Ik geloof zoals ik al eerder zei niet in een situatie dat procmail
die ">From " op de eerste regel krijgt. Het zal altijd midden in een
mail-body zijn op de scheiding van de twee oorspronkelijke mailtjes.
En als je dan die ">" weg haalt dan heeft procmail nog steeds een
samengestelde mail body. Die samengestelde body zal als een geheel in
een mailbox geplaatst worden. En procmail zal zijn recipes niet
toepassen op de headers (en eventueel de body's) van de afzonderlijke
mailtjes maar uitsluitend op de headers van het eerste (en eventueel
op de samengestelde body "body een - headers twee - body twee").
Correcte filtering kun je dus vergeten (tenzij je alles sowieso in een
en dezelfde mailbox plaatst).


Groeten,

Kees.

-- 
Kees Theunissen
F.O.M.-Instituut voor Plasmafysica "Rijnhuizen", Nieuwegein
E-mail: theuniss op rijnh.nl,     Tel: 030-6096724,     Fax: 030-6031204




More information about the Linux mailing list