Delivery Through a Program
Mail addresses that begin with a |
character are the names of programs to
run. You saw one such address in the example
aliases file:
ftphelp: |/usr/local/bin/sendhelp
Here, mail sent to the address ftphelp
is transformed via an alias into
the new address |/usr/local/bin/sendhelp
. The |
character at the start
of this new address tells sendmail that
this is a program to run rather than a file to append to.
The intention here is that the program will receive the mail
and do something useful with it.
The sendmail program doesn’t run mail
delivery programs directly. Instead, it runs a shell and
tells that shell to run the program. The name of the shell
is listed in the configuration file in a line[14] that begins with Mprog
:
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL, R=EnvToL/HdrToL, D=$z:/,
In this example, the shell is the /bin/sh(1). Other programs can appear in this line, such as /bin/ksh(1), the Korn Shell, or smrsh(1), the sendmail restricted shell that is supplied with the source distribution.
[14] * Actually, delivery agent definitions often span multiple lines.
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.