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.

Log in or register to write something here or to contact authors.