cf/README for sendmail 8.12.3

Eric Allman of the Sendmail Consortium


For more complex configurations, you can define special rules. The macro LOCAL_RULE_3 introduces rules that are used in canonicalizing the names. Any modifications made here are reflected in the header.

A common use is to convert old UUCP addresses to SMTP addresses using the UUCPSMTP macro. For example:

UUCPSMTP(`decvax', `')
UUCPSMTP(`research', `')

will cause addresses of the form "decvax!user" and "research!user" to be converted to "" and "" respectively.

This could also be used to look up hosts in a database map:

R$* < @ $+ > $* $: $1 < @ $(hostmap $2 $) > $3

This map would be defined in the LOCAL_CONFIG portion, as shown below.

Similarly, LOCAL_RULE_0 can be used to introduce new parsing rules. For example, new rules are needed to parse hostnames that you accept via MX records. For example, you might have:

R$+ <@ host.dom.ain.> $#uucp $@ cnmat $: $1 < @ host.dom.ain.>

You would use this if you had installed an MX record for cnmat.Berkeley.EDU pointing at this host; this rule catches the message and forwards it on using UUCP.

You can also tweak rulesets 1 and 2 using LOCAL_RULE_1 and LOCAL_RULE_2. These rulesets are normally empty.

A similar macro is LOCAL_CONFIG. This introduces lines added after the boilerplate option setting but before rulesets.

Do not declare rulesets in the LOCAL_CONFIG section. It can be used to declare local database maps or whatever.

For example:

Khostmap hash /etc/mail/hostmap
Kyplocal nis -m hosts.byname