The implicit
database-map type refers specifically to
aliases(5) files only. It causes
sendmail to first try to open a
db(3) hash-style alias
file. If that fails or if NEWDB support was not compiled in, it tries
to open an ndbm(3)-style database. If that
fails, sendmail reads the
aliases(5) source file into its internal symbol
table.
When sendmail rebuilds its
aliases database (as with
newaliases), it looks for the special string
literal /yp/ anywhere in the path specified for
the aliases source file. If that string literal
is found, sendmail uses this
implicit type to create both a
db(3) hash-style alias
file, and an ndbm(3)-style database. It creates
both to support NIS compatibility.
Although you can declare and use this type in a configuration file,
there is no reason to do so. It is of use only to the internals of
sendmail. If implicit
fails to open an aliases file, probably because
of a faulty AliasFile option (Section 24.9), sendmail will issue the
following error if it is running in verbose mode:
WARNING: cannot open alias database bad filename
If the source aliases file exists but no
database form exists, sendmail will read that
source file into its internal symbol table using the
stab type (stab).
You can experiment with this implicit database-map
type using a mini-configuration file such as this:
V10
Kxlate implicit -a.Yes -o /etc/mail/aliases
Stest
R$* $: $(xlate $1 $)
Here we declare a database map named xlate to be
of type implicit. We use it to look up aliases in
the file /etc/mail/aliases (which can optionally
not exist because of the -o switch). We
don't care if that file is a db
file, a dbm file, or a text file. The
implicit type will find the right type and use it.
A successful match will append a .Yes suffix to
the returned value.
The -d38.20 command-line switch (-d38.20) can be used to observe this
type's lookups in db files and
dbm files.