If sendmail is run with a -f command-line argument, and if the F=r delivery agent flag is specified, the A= for this delivery agent has the two additional arguments, -r and $g , inserted between its argv[0] and argv[1] . Consider a case in which sendmail is run as: /usr/lib/sendmail -f jim bill If bill is a local user and the delivery agent for local is defined as: Mlocal, P=/bin/mail, F= r lsDFMmnP, S=10, R=20, A=mail -d $u note the r in F= r lsDFmnP will cause the A= of: A=mail -d $u to be rewritten as: A=mail -r $g -d $u The $g is jim from the original command line (but rewritten to be a return address relative to the recipient). The original -f argument jim is first rewritten by the canonify rule set 3, the rule set 1, and the final rule set 4. The result of those rewrites is placed into $f ($f). The $f sendmail macro is rewritten by the canonify rule set 3, the rule set 1, the S= rule set, and the final rule set 4, and the result is placed into $g ($g). Note that the F=f and the F=r delivery agent flags are very similar and easily confused . |