For the past 6+ months, I've been using the script from the procmail(1)
man page to "post-process" my system mailbox. Because my machine is on
the inside of a firewall, mail to me goes to an externally connected
machine, and I have a cron script setup to POP my mail to my machine
every X minutes. This cron script POPs the mail and then runs the
post-processing script.
This has worked without a problem until a few weeks ago...Now, every once
in a while, and in a non-predictable way, formail fails to split the
existing mail file properly.
For example, say at a particular moment, the existing mail file looks like:
Message 1 + Message 2 + Message 3 + Message 4
Formail processes this as
Message 1
Message 2 + Message 3
Message 4
where messages 2 and 3 are sent to procmail as a single message instead
of two separate messages. (That is, message 3 appears to procmail to be
part of message 2's body, and messages 1 & 4 looks like messages 1 & 4
should.)
This all causes message 3 to be processed into what ever folder message 2
should end up in instead of where message 3 should. Luckily, none of my
recipes deliver to /dev/null, so I don't loose the mail, I just find it
later when it appears in folders which have a lower priority in my
reading list.
Message 3 never appears in the procmail log so I'm pretty sure it is not
procmail miss filing it but rather formail not splitting it. However,
since I can't find a common reason as to which messages befall this fate,
I'm somewhat lost. The message that this happens to come from varied
sources, including this (procmail) mailing list as well as from
individuals.
No software has changed on my end since I installed procmail/formail and
all headers appear correctly. That is, after reading my mail with Pine
and finding the errantly-filed message, I manually looked in the relevant
file and the headers are correct. Pine also shows the message correctly
as being a separate message and not part of message 3. I can't say for
sure whether the headers are correct before they go through the
popclient -> formail -> procmail -> pine process, but they are coming
from reliable, well-configured sources so I would say they are almost
definately correct. Not to mention that most messge from the same
sources get filed correctly.)
Any suggestions??? (Apologies if I was too long-winded but I wanted to
make sure all relevant details were included...tell me what other
information you need, if necesary, and I'll try to be more to the point!)
FYI:
* Procmail version 3.10
* Formail from the same distribution
* Relevant line from the post-processing script:
formail -s procmail < .newmail &&
-------------------------------------------------------------------------------
Apu(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)(_dot_)apu(_at_)menger(_dot_)eecs(_dot_)stevens-tech(_dot_)edu
WARNING: I DISCRIMINATE
E-mail is dealt with immediately;
Snail mail, if I have nothing to do (never) or I'm bored (sometimes)