The sendmail program
uses the getpwnam(3) routine (and can use
others, such as LDAP) to determine whether a local address
corresponds to a local account. If it does, the home directory for
the user is copied into $z ($z). Then the full name of the user is extracted
from the GECOS field of the passwd(5) file and
placed into $x ($x).
Beginning with V8.7 sendmail, the information in
the passwd(5) file is looked up only if the
F=w delivery agent flag is set for the
recipient's delivery agent. In general, it must be
present (set) for the local and any local-clone
delivery agents but should be absent for all other delivery agents.
For configuration files of levels lower than 6 (Section 17.5), the F=w delivery agent
flag is automatically set for the local delivery
agent.
Omitting the F=w delivery agent flag has several
consequences:
The recipient's home directory is not looked up, and
all user-level forwarding is prevented. Note that this voids all
forwarding, even if the user's home is defined as
part of the ForwardPath option (ForwardPath).
The user's full name is not looked up in the GECOS
field of the passwd(5) file (the setting of the
MatchGECOS option, MatchGECOS,
is ignored).
The user-id and group-id of
the recipient become unavailable, so the identity of the controlling
user cannot be set to that of the recipient.
Note that if you are using Unix V7-style mailboxes (as with
/bin/mail), this delivery agent flag should be
considered mandatory for local and local clones.
If you are using blackbox-style mailboxes (as with
cyrus), this flag is meaningless because usernames
are not passed, and so should be omitted. If you want to cancel
forwarding, use the ForwardPath option. Attempting
to cancel forwarding by omitting the F=w delivery
agent flag can have unpredictable side effects that might cause mail
to fail.