procmail
[Top] [All Lists]

Re: Using variables in the .procmailrc

1997-06-01 08:19:00
"Mike A. Harris" <mharris(_at_)blackwidow(_dot_)saultc(_dot_)on(_dot_)ca> 
writes:
...
I want my normal mail to go into the system inbox, but I want
mailing lists to be sorted into the directory:

$HOME/mail/incoming/

How can I set up a procmail recipe so that I don't have to supply
that full path for every single recipe?  In other words, I'd like
to put:

:0:
* ^TOsomelist
SOMELIST

I'd like to have it *just* like that, but I wan't SOMELIST to end
up in $HOME/mail/incoming/SOMELIST.

All non-absolute file references are relative to the procmail process's
current directory.  When procmail is invoked by the system to deliver
to your mailbox the current directory starts out as $HOME.  You can change
it at any time in your .procmailrc by assigning to the MAILDIR variable;
procmail will chdir() to whatever value you gave that variable, relative
or absolute.  Thus, you should be able to just say:

        MAILDIR = $HOME/mail/incoming

Note that LOGFILE assignments are also affected by changing MAILDIR, so
you may want to use an absolute path when assigning to LOGFILE, ala:

        LOGFILE = $HOME/Mail/procmail.log


Is this possible?  Can I set a default inbox path for processed
mail, but one that doesn't affect other mail processing, ie:
whatever mail doesn't match a recipe - ends up in
/var/spool/mail/$USER  ?

Since the default mailbox has an absolute path, changing MAILDIR won't
affect delivery to $DEFAULT.


Philip Guenther

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