User Tools

Site Tools


SMTP clients

This page lists SMTP and SMTPS clients available on OpenWRT, that are able to send email to other email servers.


The table below is based on Chaos Calmer (15.05).

Name Version Dependencies Size Features
msmtp 1.6.2-1 libopenssl 37785 SSL, smarthost only, sendmail-compatible, SMTP auth
msmtp-nossl 1.6.2-1 33503 smarthost only, sendmail-compatible, SMTP auth
mailsend 1.17b15-2 libopenssl 36679 SSL, smarthost only, no configuration required, MIME, attachements, IPv6, SMTP auth
mailsend-nossl 1.17b15-2 34865 smarthost only, no configuration required, MIME, attachements, IPv6, SMTP auth
ssmtp 2.64-1.1 libopenssl 11669 SSL support, smarthost only, SMTP auth
mini-sendmail not present on CC 4726 smarthost only, no configuration required

"smarthost only" means that the program is only capable to send email through a configured "smarthost", that is, it cannot directly deliver to the destination SMTP server.

Using mailsend


Mailsend is a simple command line program to send mail via SMTP protocol.

Being quite lightweight and not requiring any configuration, mailsend is ideal for sending mails in shell scripts.


Depending on whether you want SSL support or not (actually, the size of libopenssl will probably be the decisive factor), install one of the two versions:

opkg install mailsend
opkg install mailsend-nossl


Simple usage:

mailsend -f root@openwrt -t -smtp -sub "My subject" -msg-body /tmp/body

For advanced usage (MIME attachements, authentication, BCC, etc), see:

mailsend -h
mailsend -example

Using msmtp


msmtp is an SMTP client. In the default mode, it transmits a mail to
an SMTP server (for example at a free mail provider) which does the
delivery. To use this program with your mail user agent (MUA), create
a configuration file with your mail account(s) and tell your MUA to
call msmtp instead of /usr/sbin/sendmail.

Since msmtp understands standard sendmail options, it can be used in places where sendmail is expected (e.g. PHP code).


opkg install msmtp


Place your configuration in /etc/msmtprc. There is an existing default-block in the included config file so if you want to call msmtp without specifying an account, then you need to rename the existing default-block to something else.

Here is an example configuration using Fastmail's servers:

# Example for a system wide configuration file

# A system wide configuration file is optional.
# If it exists, it usually defines a default account.
# This allows msmtp to be used like /usr/sbin/sendmail.
account previous_default

# The SMTP smarthost.
host mailhub.oursite.example

# Construct envelope-from addresses of the form "user@oursite.example".
#auto_from on
#maildomain oursite.example

# Use TLS.
#tls on
#tls_trust_file /etc/ssl/certs/ca-certificates.crt

# Syslog logging with facility LOG_MAIL instead of the default LOG_USER.
syslog LOG_MAIL
#//////DEFAULT END//////

account default

from something@your-domain.tld

auth on
user something@your-domain.tld
password your-password-here

tls on
tls_starttls off

The part below #//////DEFAULT END////// contains our changes with the exception of the line account previous_default, which was originally account default.

Unless you happen to use Fastmail, replace with whatever the IMAP server address for your provider is. You might also need to enable the tls_starttls option.

Sending mail

echo -e "Subject: Test mail\n\nThis is a test \"message\"." | sendmail -f "Sender's Name <something@your-domain.tld>" recipient@destination.tld

Note that sendmail (/usr/sbin/sendmail) is a symlink to /usr/bin/msmtp.

Using mini-sendmail


Name Version Dependencies Size Description
mini-sendmail 1.3.6-4 none 5866 mini_sendmail reads its standard input up to an end-of-file and sends a copy of the message found there to all of the addresses listed. The message is sent by connecting to a local SMTP server. This means mini_sendmail can be used to send email from inside a chroot(2) area.

Installation and Configuration

opkg install mini-sendmail

On Chaos Calmer, the package is no longer available, but the version from Barrier Breaker still works:

opkg install


mini_sendmail -p465 -t < input_file
usage: mini_sendmail [-f<name>] [-t] [-s<server>] [-p<port>] [-T<timeout>] [-v] [address ...]

Note that there must not be a space between the option and the value; e.g. "-p 465" is incorrect.

Using ssmtp


A secure, effective and simple way of getting mail off a system to your
mail hub. It contains no suid-binaries or other dangerous things - no
mail spool to poke around in, and no daemons running in the background.
mail is simply forwarded to the configured mailhost. Extremely easy


opkg install ssmtp


ssmtp expects its two configuration files named /etc/ssmtp/revaliases and /etc/ssmtp/ssmtp.conf. Both are self-explaining:

# /etc/ssmtp/ssmtp.conf
# /etc/ssmtp/revaliases
# Format: local_account:outgoing_address:mailhub

To use the program, with SMTP auth:

cat /etc/banner | ssmtp -vvv -auultranerd@universum.tb -ap123password456

doc/howto/smtp.client.txt · Last modified: 2015/10/03 15:21 by zorun