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?