Previous Section Next Section

-d29.4

Trace fuzzy matching Debug command-line switch

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.

    Previous Section Next Section