The rc.sendmail
script is used by
/etc/rc at boot time to start
sendmail(8).
It is meant to be
sendmail(8)
specific and not a generic script for all MTAs. It is only called by
/etc/rc if the
rc.conf(5)
mta_start_script variable is set to
/etc/rc.sendmail.
The rc.sendmail
script can take an
optional argument specifying the action to perform. The available actions
are:
start
- Starts both the MTA and the MSP queue runner.
stop
- Stops both the MTA and the MSP queue runner.
restart
- Restarts both the MTA and the MSP queue runner.
start-mta
- Starts just the MTA.
stop-mta
- Stops just the MTA.
restart-mta
- Restarts just the MTA.
start-mspq
- Starts just the MSP queue runner.
stop-mspq
- Stops just the MSP queue runner.
restart-mspq
- Restarts just the MSP queue runner.
If no action is specified, start
is
assumed.
The rc.sendmail
script is also used by
/etc/mail/Makefile to enable the
Makefile's start
,
stop
, and restart
targets.
The following variables affect the behavior of
rc.sendmail
. They are defined in
/etc/defaults/rc.conf and can be changed in
/etc/rc.conf.
- sendmail_enable
- (str) If set to
“
YES
”, run the
sendmail(8)
daemon at system boot time. If set to
“NO
”, do not run a
sendmail(8)
daemon to listen for incoming network mail. This does not preclude a
sendmail(8)
daemon listening on the SMTP port of the loopback interface. The
“NONE
” option is deprecated and
should not be used. It will be removed in a future release.
- sendmail_cert_create
- (str) If sendmail_enable is
set to “
YES
”, create a signed
certificate /etc/mail/certs/host.cert representing
/etc/mail/certs/host.key by the CA certificate in
/etc/mail/certs/cacert.pem. This will enable
connecting hosts to negotiate STARTTLS allowing incoming email to be
encrypted in transit.
sendmail(8)
needs to be configured to use these generated files. The default
configuration in /etc/mail/freebsd.mc has the
required options in it.
- sendmail_cert_cn
- (str) If sendmail_enable is
set to “
YES
” and
sendmail_cert_create is set to
“YES
”, this is the Common Name (CN)
of the certificate that will be created. If
sendmail_cert_cn is not set, the system's hostname
will be used. If there is no hostname set,
“amnesiac
” will be used.
- sendmail_flags
- (str) If sendmail_enable is
set to “
YES
”, these are the flags to
pass to the
sendmail(8)
daemon.
- sendmail_submit_enable
- (bool) If set to
“
YES
” and
sendmail_enable is set to
“NO
”, run
sendmail(8)
using sendmail_submit_flags instead of
sendmail_flags. This is intended to allow local mail
submission via a localhost-only listening SMTP service required for
running
sendmail(8)
as a non-set-user-ID binary. Note that this does not work inside
jail(2)
systems, as jails do not allow binding to just the localhost
interface.
- sendmail_submit_flags
- (str) If sendmail_enable is
set to “
NO
” and
sendmail_submit_enable is set to
“YES
”, these are the flags to pass
to the
sendmail(8)
daemon.
- sendmail_outbound_enable
- (bool) If set to
“
YES
” and both
sendmail_enable and
sendmail_submit_enable are set to
“NO
”, run
sendmail(8)
using sendmail_outbound_flags instead of
sendmail_flags. This is intended to allow local mail
queue management for systems that do not offer a listening SMTP
service.
- sendmail_outbound_flags
- (str) If both sendmail_enable
and sendmail_submit_enable are set to
“
NO
” and
sendmail_outbound_enable is set to
“YES
”, these are the flags to pass
to the
sendmail(8)
daemon.
- sendmail_msp_queue_enable
- (bool) If set to
“
YES
”, start a client (MSP) queue
runner
sendmail(8)
daemon at system boot time. As of sendmail 8.12, a separate queue is used
for command line submissions. The client queue runner ensures that nothing
is left behind in the submission queue.
- sendmail_msp_queue_flags
- (str) If
sendmail_msp_queue_enable is set to
“
YES
”, these are the flags to pass
to the
sendmail(8)
daemon.
These variables are used to determine how the
sendmail(8)
daemons are started:
# MTA
if (${sendmail_enable} == NONE)
# Do nothing
else if (${sendmail_enable} == YES)
start sendmail with ${sendmail_flags}
else if (${sendmail_submit_enable} == YES)
start sendmail with ${sendmail_submit_flags}
else if (${sendmail_outbound_enable} == YES)
start sendmail with ${sendmail_outbound_flags}
endif
# MSP Queue Runner
if (${sendmail_enable} != NONE &&
[ -r /etc/mail/submit.cf] &&
${sendmail_msp_queue_enable} == YES)
start sendmail with ${sendmail_msp_queue_flags}
endif
To completely prevent any
sendmail(8)
daemons from starting, you must set the following variables in
/etc/rc.conf:
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
The rc.sendmail
file appeared in
FreeBSD 4.6.