nullmailer-send - Send queued messages
nullmailer-send
This program is responsible for coordinating the transmission of messages that
have been queued by
nullmailer-queue. It uses a variety of protocol
modules to deliver the messages from the queue to remote "smart"
servers.
When the program starts, the queue is scanned to build a list of messages to
send. The queue is rescanned when either the trigger is pulled, or after
pausetime seconds have elapsed after the last failed delivery. When
there are no messages in the queue, nullmailer does no rescanning until the
trigger is pulled. Pulling the trigger consists of opening up the trigger
named pipe and writing a single byte to it, which causes this program to be
awakened (if it's not already processing the queue). This procedure is done by
nullmailer-queue to ensure that messages are delivered immediately. You
can start delivery by hand from the command line like this:
echo 1 > trigger
Delivery of messages consists of reading the list of remote servers and then
trying to deliver the messages to these servers as follows. For each remote in
the list, the named protocol handler is executed once for each message
remaining in the queue. If the protocol handler succeeds, the message is
removed from the queue and processing continues with the next message. If the
protocol handler reports a permanent failure or the message has been in the
queue longer than
queuelifetime, the message is moved into the
failed queue and a bounce message is generated with
nullmailer-dsn. If any messages remain in the queue, processing of the
remaining messages continues with the next remote. When all the remotes have
been tried,
nullmailer-send sleeps for a number of seconds specified by
pausetime before retrying sending the contents of the queue.
All the control files are reread each time the queue is run.
- helohost
- Sets the environment variable $HELOHOST which is
used by the SMTP protocol module to set the parameter given to the
HELO command. Defaults to the value of the me configuration
file.
- maxpause
- The maximum time to pause between successive queue runs, in
seconds. Defaults to 24 hours (86400).
- pausetime
- The minimum time to pause between successive queue runs
when there are messages in the queue, in seconds. Defaults to 1 minute
(60). Each time this timeout is reached, the timeout is doubled to
a maximum of maxpause. After new messages are injected, the timeout
is reset. If this is set to 0, nullmailer-send will exit
immediately after going through the queue once (one-shot mode).
- queuelifetime
- The maximum time a message is allowed to live in the queue
before being considered permanently failed, in seconds. Defaults to 7 days
(604800).
- remotes
- This file contains a list of remote servers to which to
send each message. Each line of this file contains a remote host name or
address followed by an optional protocol string, separated by white space.
The protocol name defaults to smtp, and may be followed by
additional options for that module. See the "PROTOCOL OPTIONS"
section for a list of the available options. The options may optionally be
prefixed by -- but this is not required. The line is parsed
according to standard shell quoting rules. For example, to connect to port
2525 on your SMTP smart host, which also requires SMTP authentication, and
initiate TLS with STARTTLS, use:
smarthost.dom smtp port=2525 starttls user=user pass='my pass phrase'
Blank lines and lines starting with a pound ( #) are ignored.
- sendtimeout
- The time to wait for a remote module listed above to
complete sending a message before killing it and trying again, in seconds.
Defaults to 1 hour (3600). If this is set to 0,
nullmailer-send will wait forever for messages to complete
sending.
- port=PORT
- Set an alternate port number to connect to on the remote
host. For example, SMTP may use port=587 for the alternate SMTP
"submission" port.
- user=USERNAME
- Set the SMTP authentication user name.
- pass=PASSWORD
- Set the SMTP authentication password.
-
source=HOSTNAME
- Set the source address for connections to the remote
host.
- auth-login
- Force SMTP "AUTH LOGIN" mode instead of
auto-detecting.
- tls
- Connect using TLS. This will automatically switch the
default port to 465.
- ssl
- Alias for the tls option for compatibility.
- starttls
- Use the STARTTLS command to initiate a TLS
session.
- x509certfile=FILENAME
- Set the filename for a TLS client certificate to send to
the server.
- x509keyfile=FILENAME
- Set the filename for the private key for a TLS client
certificate. Defaults to the same file name as x509certfile.
- x509cafile=FILENAME
- Set the TLS certificate authority trust filename. Defaults
to /etc/ssl/certs/ca-certificates.crt.
- x509crlfile=FILENAME
- Set the TLS certificate revocation list filename.
- x509fmtder
- Specify that TLS X.509 files above are in DER format
instead of PEM.
- insecure
- Don't abort a TLS connection if the server certificate
fails validation. Use this only if you know the server uses an invalid
certificate.
- tls-anon-auth
- Use TLS anonymous authentication - replacing certificate
authentication. This means no external certificates or passwords are
needed to set up the connection. With this option your connection is
vulnerable to man-in-the-middle (active or redirection) attacks. However,
the data are integrity protected and encrypted from passive eavesdroppers.
This option must be used with the insecure option - to acknowledge that
you know what you are doing.
- /var/spool/nullmailer/failed
- The failed message queue.
- /var/spool/nullmailer/queue
- The outgoing message queue.
- /var/spool/nullmailer/trigger
- A trigger file to cause immediate delivery.
- /etc/nullmailer
- The configuration directory.
- /usr/lib/nullmailer
- The protocol program directory.
nullmailer-smtp(8),
nullmailer-qmqp(8) nullmailer-dsn(1),
nullmailer-inject(1),
nullmailer-queue(8),
mailq(1) http://www.postfix.org/TLS_README.html on how to
setup a certificate-less Postfix SMTP server