The art of writing
sendmail config files has been lost to
DSL and
cable modems. The true art of writing a
sendmail.cf ruleset is have
a trusty old
300 baud modem and pick a phone while its running, and
start telling sendmail that you
love it. Sendmail needs
love,
caring, and
attention
in order to work properly.
For those who have never experienced the joy of sendmail, a typical
sendmail ruleset looks something like this:
##################################################
### Ruleset 4 -- Final Output Post-rewriting ###
##################################################
S4
R$* <@> $@ handle <> and list:;
# strip trailing dot off possibly canonical name
R$* < @ $+ . > $* $1 < @ $2 > $3
# eliminate internal code -- should never get this far!
R$* < @ *LOCAL* > $* $1 < @ $j > $2
# externalize local domain info
R$* < $+ > $* $1 $2 $3 defocus
R@ $+ : @ $+ : $+ @ $1 , @ $2 : $3 <route-addr> canonical
R@ $* $@ @ $1 ... and exit
# UUCP must always be presented in old form
R$+ @ $- . UUCP $2!$1 u@h.UUCP => h!u
# delete duplicate local names
R$+ % $=w @ $=w $1 @ $2 u%host@host => u@host
As you can see, this looks like
line noise, and thus the best way
to start out a sendmail ruleset is to generate some line noise, and then
start
debugging it. Writing sendmail rulesets from
scratch will only
result in
drug overdoses and
nasty hangovers.