Provided by: msmtp-mta_1.8.23-1ubuntu1_amd64 bug

NAME

       msmtpd - A minimal SMTP server

SYNOPSIS

       msmtpd [option...]

DESCRIPTION

       Msmtpd  is  a  minimal  SMTP  server that pipes mails to msmtp (or some other program) for
       delivery.  It can be used with system services that expect an SMTP  server  on  the  local
       host,  or it can be used by end users as a way to handle outgoing mail via msmtp with mail
       clients that insist on using SMTP.  The EXAMPLES section below contains examples for  both
       use cases.
       Msmtpd  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
       occurrence  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 session.
       If the command that the mail is piped to reports an error, this is typically reported as a
       permanent failure by msmtpd (SMTP server return code  554).  The  command  can  optionally
       signal  temporary  errors  by  using  return  codes  defined  in  sysexits.h,  e.g. 75 for
       EX_TEMPFAIL. These will then be reported as temporary  failures  by  msmtpd  (SMTP  server
       return code 451), which means the client should try again later.
       To prevent abuse, msmtpd will allow only a limited number of concurrent SMTP sessions, and
       if authentication is active and an authentication failure occurrs,  future  authentication
       requests  in any SMTP session will (for a limited duration) only be answered after a small
       delay.

OPTIONS

       --version
              Print version information

       --help Print help

       --inetd
              Start single SMTP session on stdin/stdout

       --interface=ip
              Listen on the given IPv6 or IPv4 address instead of 127.0.0.1

       --port=number
              Listen on the given port number instead of 25

       --log=none|syslog|filename
              Set logging: none (default), syslog, or logging to the given file.

       --command=cmd
              Pipe mails to cmd instead of msmtp.  Make sure to  end  this  command  with  --  to
              separate options from arguments.

       --auth=user[,passwordeval]
              Require authentication with this user name. The password will be retrieved from the
              given passwordeval command (this works just like passwordeval in msmtp) or, if none
              is given, from the key ring or, if that fails, from a prompt.

EXAMPLES

       Using msmtpd as a system service
       Only  use  a  local  interface  to  listen  on.  Run  msmtpd  with correct user rights and
       permissions (e.g. use CAP_NET_BIND_SERVICE 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.  Enable logging to syslog with --log=syslog.
       Example for managing msmtpd with start-stop-daemon:
       # 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 --signal
       TERM
       Using msmtpd to handle outgoing mail for an SMTP-based mail client
       Some mail clients cannot send outgoing mail with a program like msmtp and  instead  insist
       on  using  an  SMTP  server. You can configure msmtpd to be that SMTP server and hand your
       outgoing mail over to msmtp.
       (Similarly, some mail clients cannot get incoming mail from a local mailbox and insist  on
       using  a  POP3  or  IMAP  server. You can configure mpopd to be that POP3 server and serve
       incoming mail from a local mailbox. See the relevant section in the mpop manual.)
       For this purpose, msmtpd should listen on an unprivileged port, e.g.  2500.   Furthermore,
       msmtpd  should  require  authentication because otherwise anyone connecting to it can send
       mail using your account, even if it's just other users or processes on your local machine.
       Let's use the user name msmtpd-user for this purpose. You have two options to  manage  the
       password:

              Store  the  password  in  your key ring, e.g. with secret-tool store --label=msmtpd
              host localhost service smtp user msmtpd-user.  In this case, use the msmtpd  option
              --auth=msmtpd-user.

              Store the password in an encrypted file and use the passwordeval mechanism. Example
              for gpg: msmtpd ... --auth=msmtpd-user,'gpg -q -d ~/.msmtpd-password.gpg'

       The complete command then is (using the keyring):  msmtpd  --port=2500  --auth=msmtpd-user
       --command='/path/to/your/msmtp -f %F --'
       The  mail  client  software  must  then  be  configured  to use localhost at port 2500 for
       outgoing mail via SMTP, and to use authentication with user msmtpd-user and  the  password
       you  chose.  The  mail client will probably complain that the SMTP server does not support
       TLS, but in this special case that is ok since all communication between your mail  client
       and msmtpd will stay on the local machine.
       This  setup  also works with multiple mail accounts. Msmtp will pick the correct one based
       on the envelope-from address given to it via -f %F. You do not need multiple instances  of
       msmtpd  for  this purpose, and therefore you need only one SMTP server in your mail client
       configuration.

SEE ALSO

       msmtp(1)

                                             2021-09                                    MSMTPD(1)