Fuzzy matching is the attempt to match a local recipient name to one
of the names in the GECOS field of the passwd(5)
file (or NIS map). The -d29.4 debugging switch
causes the process of fuzzy matching to be traced:
finduser(name)
Here, name is an address in the form of a local
user address, without the host part. The name is
first looked up in the passwd(5) file on the
assumption that it is a login name. If it is found,
sendmail prints:
found (non-fuzzy)
If sendmail was compiled with
hesiod support, all numeric login names will not
work properly, resulting in the following:
failed (numeric input)
If the name is looked up and not found, the entire
passwd(5) is searched to see whether
name appears in any of the GECOS fields. This
search is done only if MATCHGECOS (MATCHGECOS) was
defined when sendmail was compiled and if the
MatchGECOS option (MatchGECOS)
is true. If MATCHGECOS was undefined, the search ends and the
not-found name causes the mail to bounce. If the
MatchGECOS option is false,
sendmail bounces the message and prints the
following:
not found (fuzzy disabled)
If the MatchGECOS option is true, the GECOS fields
are searched. But before the search starts, any underscore characters
(and the character defined by the BlankSub option,
BlankSub) that appear in
name are converted to spaces. Then, in turn,
each GECOS field has the full name extracted (everything following
the first comma, semicolon, or percent is truncated off, including
that character), and any & characters found
are converted to the login name. The two are then compared in a
case-insensitive fashion. If they are identical,
sendmail prints:
fuzzy matches found GECOS field here
If all GECOS fields are compared and no match is found,
sendmail bounces the message and prints the
following:
no fuzzy match found
There is no debugging flag to watch each comparison.