Trace user database transactions Debug command-line switch

The sendmail program can be compiled to use the user database (userdb on page 942) by defining USERDB in the Makefile (USERDB on page 150). 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 un-aliased even if the F=A flag is set and if the F=5 (F=5 on page 764) 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:


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

Get sendmail, 4th Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.