Create a mail delivery agent definition that has no symbolic name
or one that has what you suspect is an illegal name. What happens
when you run sendmail with the -d0.15
command-line
argument?
Define two different mail delivery agents that have the same symbolic name. Does sendmail catch the error, or does it replace the first with the second?
Make a typo in one of the equates. For example, instead of
S=6
, enter s=6
. What happens?
The P=
equate is used to state the full pathname of
the program that delivers the mail message. Since the
parts are separated from each other by commas, is it possible
to include a comma in that pathname? If so, how? Use -d0.15
to test your proposals.
What happens if the program shown in the P=
equate
does not exist or if that
program is not executable? Is this detected by sendmail
when the sendmail.cf file is read?
The A=
equate specifies the command-line arguments that
are given to the P=
program when it is run.
Can you include commas in those command-line arguments?
When a line in the sendmail.cf file begins with a
space or tab character, it is joined (appended) to the line above
it. Try splitting delivery agents over multiple lines for
readability using this mechanism. Test the result with the
-d0.15
debugging switch (review Section 6.2.1, "Testing the client.cf File").
Mhub, # Delivery agent definition to forward mail to hub P=[IPC], # use SMTP over the network S=0, # no sender rewriting R=0, # no recipient rewriting F=m, # flag: deliver to more than one user at a time F=D, # flag: include Date: in the header F=F, # flag: include From: in the header F=M, # flag: include Message-ID: in the header F=u, # flag: preserve the case of the recipient name F=X, # flag: pass lone dots on a line by doubling F=a, # flag: run extended SMTP protocol T=DNS/RFC822/SMTP, A=IPC $h
Gather all of the lines in your system's current sendmail.cf
file that define mail delivery agents.
In each of the lines printed, you will see one field that declares
the full path of a mail delivery program. For each of those
P=
fields, locate and read the online manual page for the
program specified. Do the arguments in the A=
field
make sense to you?