[linux] Re: >From

Kees Theunissen theuniss op rijnh.nl
Zo Nov 13 22:23:03 CET 2005


On Sun, 13 Nov 2005, Folkert van Heusden wrote:

>Hi,
>
>Het gebeurd nogal eens dat er mailtjes verdwijnen doordat iets een nieuw
>mailtje rechtstreeks achter een oud mailtje zet en daarbij dan "From..."
>wijzigt in ">From...".
>Nu hoop ik dat met procmail te wijzigen maar voordat ik e.e.a. invoer en
>allerlei mail misloop wil ik 't even aan jullie voorleggen.
>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.
-- 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. Zelf al haal je
   de betreffende ">" weg (en alléén die ">") dan heb je nog steeds
   twee aan elkaar geplakt mailtjes. Dikke kans (afhankelijk van je
   procmail recipes) dat minstens het tweede mailtje maar mogelijk
   ook het eerste verkeerd verwerkt wordt door procmail.
   Je zou eventueel iets kunnen doen met een pipe door "formail"
   om die twee mailtjes te splitsen en opnieuw aan procmail aan te
   bieden.


Nog even filosoferen over wat er fout gaat (ik kan het niet laten :).
In een mailbox file wordt het begin van een nieuw mailtje gemarkeerd
door een lege regel gevolgd door een regel die met "From " begint
(De F moet een hoofdletter zijn en die spatie hoort er ook bij).
Dat ziet er dus zo uit (ik geef met \n expliciet aan dat er een
newline staat, je ziet die \n natuurlijk niet in de tekst van een
mailtje):

...
laatste regel van het voorgaande mailtje\n
\n
>From sender op some.domain timestamp\n
...

Waarschijnlijk is de lege regel op een of andere manier in het ongerede
geraakt. Het programma dat die "From " regel toevoegt zal ook eerst
een newline toevoegen, daar mag je klakkeloos van uit gaan. Ik denk
daarom dat op de laatse regel van het voorgaande mailtje die \n
ontbroken heeft.
Folkert, als je de mailtjes die direct vooraf gaan aan je probleem
zelf gegenereerd hebt dan heb je de oplossing zelf in de hand volgens
mij. Zo niet dan moet je na gaan of die mailtjes toevallig van dezelfde
bron afkomstig zijn en of je daar toch nog invloed op kunt uitoefenen.


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