The sendmail program can be compiled to use the
user database (userdb) by defining USERDB in
the Makefile (USERDB). If
an address is selected by the parse rule set 0 for
delivery by a delivery agent with the F=l flag
set, and if it remains unaliased even if the F=A
flag is set and if the F=5 (F=5) delivery agent flag is set, it is looked up
in the user database. The -d28.1 (a.k.a.
-d28) debugging switch is used to watch the
interaction between sendmail and the user
database:
udbexpand(addr)
Here, addr is the address being looked up.
The sender is looked up in a similar fashion. The intent in this case
is to correct information such as the return address:
udbmatch(login, what)
Here, login is the login name of the sender and
what is the mailname for
sender lookups. If the lookup is via hesiod,
sendmail will print the same information, like
this:
hes_udb_get(login, what)
If the sender is found in the database, sendmail
prints:
udbmatch = => login@defaulthost
Here, login can be a new login name. The
defaulthost is either the sitewide host for all
reply mail as defined in the user database, or the default
destination host for a particular user.
In the event that a db(3)-style user database
fails to open, the -d28.1 debugging switch
displays the following error message:
dbopen(database): reason for failure here