msmtpd - A minimal SMTP server
Msmtpd is a minimal SMTP server that pipes mails to msmtp (or some other
program) for delivery. It is intended to be used with system services that
expect an SMTP server on the local host and cannot be configured to use the
sendmail interface that msmtp provides.
Msmtpd handles local SMTP clients. It listens on 127.0.0.1 port 25 by default,
but can also run without its own network sockets in inetd mode, where it
handles a single SMTP session on standard input / output.
In the string that defines the command that msmtpd pipes each mail to, the first
occurence of %F
will be replaced with the envelope from address.
Furthermore, all recipients of the mail will be appended as arguments. The
command must not write to standard output, as that would mess up the SMTP
Only run msmtpd if you know you need it. Only use a local interface to listen
on. Take care to run it with correct user rights and permissions (e.g. use
to bind to port 25 instead of running as root, or
use systemd with inetd service capabilities). Be aware that the pipe command
will be run as the same user that msmtpd runs as.
- Print version information
- Print help
- Start single SMTP session on stdin/stdout
- Listen on the given IPv6 or IPv4 address instead of 127.0.0.1
- Listen on the given port number instead of 25
Managing msmtpd with start-stop-daemon
- Pipe mails to cmd instead of msmtp
# start msmtpd
start-stop-daemon --start --pidfile /var/run/msmtpd.pid --make-pidfile --chuid
msmtpd --background --exec /usr/local/bin/msmtpd -- --command
'/usr/local/bin/msmtp -f %F'
# stop msmtpd
start-stop-daemon --stop --pidfile /var/run/msmtpd.pid --remove-pidfile --quiet