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
BusyBox sendmail 1.33 must be compiled libopenssl 14 kb SSL, smarthost only, sendmail-compatible, SMTP auth
msmtp 1.6.2-1 libgnutls 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, no longer available since OpenWRT 21.02
mini-sendmail package not present 4726 smarthost only, no configuration required
emailrelay 1.9-5 libc libssp libopenssl libstdcpp 316 simple SMTP proxy and store-and-forward message transfer agent (MTA); can be used similar to postfix with mail queue in combination with msmtp and mutt
XMail package isn't present but available for compile libopenssl

“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.

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
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 Gmail that worlks with 2FA and an app password:

# 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.
# cat /etc/msmtprc

account default

port 465
auth on
tls on
tls_starttls off

password app_passwd_here

syslog LOG_MAIL

Now symlink msmtp to sendmail with ln -s /usr/bin/msmtp /usr/sbin/sendmail.

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

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

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.
opkg install mini-sendmail

On Chaos Calmer, the package is no longer available, but the version from Barrier Breaker still works (AA & BB versions as installed below work in AA):

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.

Several sample configurations found on the internet failed, but as of 160413, this worked

echo -e 'From:\r\nSubject: Test Subject\r\n\r\nTesting\r\n.' | mini_sendmail failed; omitting -f failed; omitting “From: ” resulted in transmission, but no sender shown.

This is a very small package if you can find an smtp server which works and you can configure the command so that the server accepts it.

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


This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2022/12/03 16:00
  • by xxiao