procmail
[Top] [All Lists]

Re: Bug in procmail?

1999-10-01 00:28:45
At 01:31 AM 10/1/99 +0200, Martin Mokrejs wrote:
[snip]
Why is procmail "fixing" always the mbox format and leaves only first
From_. All other occurencies are fixed by prepending >. This is meantion
in manpage, it also says that is not done if the user is root. Hou can a
poor user disable this feature? Similar feature exists in formail, but it
seems I'm allowed to disable it at least. ;-) Anyway, it's not nice that
it requests UID=0.

The reason is, that even I'm able to convert the mailbox to RFC 822 style
with your previous help (converting >From to From). The problem is, that
procmail leaves the first really fixed From, but other appearances just
"fixes" to >From.

The reason I want to use -m option is that I just want to use procmail to
extract dates and write them down, I don't want it to send the whole
mailbox file to my /var/spool/username.

It sounds like you're trying to hand procmail a mailbox and expecting
it to process the individual messages within the box.

However, procmail treats all of its input as a single message.  (What
if someone sends a message containing another message?  That is,
after all, legal; in fact, it's why people often want From_ encountered
inside a message to be escaped, so that mail readers don't treat the
included message as a separate one.)  Thus, procmail treats the first
From_ as the beginning of a very large message consisting of your
entire mailbox contents, with headers being just the headers of the
first message.

When you have a mailbox with valid From_ delimiters in it (and no
messages containing unescaped From_ that "look like" headers),
the way to process it is to use formail -s to split the box,
running procmail on EACH of the split messages separately
(by putting it after the -s).

[...]
host# procmail VERBOSE=on date.rc < new.mbox
procmail: [27802] Thu Sep 30 23:06:27 1999
procmail: Couldn't read "//date.rc"

I'm not quite sure what's going on here or what this should be doing,
but I don't trust that VERBOSE=on; I think that what happens with
that may depend on your interactive shell (which you don't identify).
I would set it separately in the environment, or in the rc file,
at least while trying to nail down what's happening.

Hope that helps, at least some.

Cheers,
Stan

<Prev in Thread] Current Thread [Next in Thread>