The
vacation program, when run from inside your
~/.forward file, figures out the addresses of
the sender by looking at the five-character
"From " header
(for the envelope sender). But there are other ways to run
vacation when the envelope sender address should
instead be passed on the command line.
Consider the following delivery agent declaration (Section 20.1) in which arbitrary users can have mail
delivered via the vacation program:
Mvacation, P=/usr/ucb/vacation, A=vacation -s $f $u
Here, the vacation program is run whenever this
delivery agent is selected by rule sets. When it is run, the
recipient's address is passed to it in the
$u sendmail macro ($u). The sender's address is
passed to it with the -s command-line switch and
the $f sendmail macro ($f).
This -s command-line switch is useful whenever
vacation is run from somewhere other than the
command line or your ~/.forward file. If the
vacation program is run from inside your
~/.procmail.rc file or from within your
~/.maildelivery file, this -s
command-line switch can also be handy.
The sender address must follow the -s. If it is
missing, the recipient address will become the sender address and
vacation will exit without doing anything. If
the sender address is not a valid address, the message mailed by
vacation will bounce.