lists(_at_)professional(_dot_)org writes:
At 05:33 PM 4/10/97 -0500, Philip Guenther elucidated thus:
...
The correlary of this, is that the implicit DEFAULT and ORGMAIL
processing done by procmail can only deliver to mailfolders, never to
programs. If you want to do that, you'll need to explicitly put it at
the bottom of your .procmailrc. Yes, life is hard.
I don't follow - isn't an *implicit* DEFAULT handled at the end of procmail
anyway?
The "implicit DEFAULT processing" is what happens when procmail falls off
the end of you .procmailrc with no delivery taking place. At that time,
procmail will effectively act as if it processed the following recipes:
# Only attempt delivery if DEFAULT is not empty.
:0:
* DEFAULT ?? .
$DEFAULT
# Only attempt deliver to $ORGMAIL if it's different from $DEFAULT
:0:
* ORGMAIL ?? .
* ! ORGMAIL ?? ^^$\DEFAULT^^
$ORGMAIL
# Return failure
:0
{ EXITCODE = 73 # 73 = EX_CANTCREAT
HOST # give up.
}
Just as implied by the above code, setting DEFAULT (or ORGMAIL) to
anything besides a mailbox, a list of directory style mailboxes, or
"|", will result in procmail trying to deliver to the first 'word' of
the command given, say, "|gzip". Yes, that's a filename that starts with
a "|".
If I'm adding mail processing and making use of the DEFAULT
definition, then aren't I *explicitly* using it?
Yes. However, at that point I would suggest you use a different name,
if just to avoid the suggestion that you're taking advantage of procmail's
special handling of the DEFAULT variable, because you're not.
[snip]
stdout). Therefore, the line
DEFAULT = "|"
will work.
Although be of nominal use unless you're sitting in front of the mail
terminal all day... :)
The "|" pseudo-mailbox _is_ really more useful when making outside calls
to procmail, as opposed to procmail's operation as the local delivery
agent.
Philip Guenther