Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
docs:guide-user:services:email:smtp.client [2023/04/02 10:16] – [Overview] stokitodocs:guide-user:services:email:smtp.client [2024/12/14 23:05] – move old clients to bottom stokito
Line 5: Line 5:
 ===== Overview ===== ===== Overview =====
  
-The table below is based on Chaos Calmer (15.05).+The table shows all clients ported to OpenWrt:
  
-^ Name                                             ^ Version                                               ^ Dependencies                                     ^ Size   ^ Features                                                                                                                                                 +^ Name                                             ^ Version                    ^ Dependencies                                      ^ Size    ^ Features                                                                                                                                                                             
-| [[docs:techref:busybox|BusyBox]] sendmail        | 1.33 //must be compiled//                             | //libopenssl//                                   14 kb  | SSL, smarthost only, sendmail-compatible, SMTP auth                                                                                                      +| [[docs:techref:busybox|BusyBox]] sendmail        | 1.33 //must be compiled//  | //libopenssl//                                    14KB   | SSL, smarthost only, sendmail-compatible, SMTP auth                                                                                                                                  
-| [[packages:pkgdata:msmtp]]                     | 1.6.2-1                                               | //libgnutls//                                    37785  | SSL, smarthost only, sendmail-compatible, SMTP auth                                                                                                      +| [[packages:pkgdata:msmtp]]                       | 1.8                        | //libgnutls//                                     51KB   | SSL, smarthost only, sendmail-compatible, SMTP auth                                                                                                                                  
-| [[packages:pkgdata:msmtp-nossl]]                 | 1.6.2-1                                                                                                33503  | smarthost only, sendmail-compatible, SMTP auth                                                                                                           +| [[packages:pkgdata:msmtp-nossl]]                 | 1.8                                                                          47KB   | smarthost only, sendmail-compatible, SMTP auth                                                                                                                                       
-| [[packages:pkgdata:mailsend]]                    | 1.17b15-2                                             | //libopenssl//                                   36679  | SSL, smarthost only, no configuration required, MIME, attachements, IPv6, SMTP auth                                                                      +| [[packages:pkgdata:mailsend]]                    | 1.19                       | //libopenssl//                                    39KB   | SSL, smarthost only, no configuration required, MIME, attachements, IPv6, SMTP auth                                                                                                  
-| [[packages:pkgdata:mailsend-nossl]]              | 1.17b15-2                                                                                              34865  | smarthost only, no configuration required, MIME, attachements, IPv6, SMTP auth                                                                           +| [[packages:pkgdata:mailsend-nossl]]              | 1.19                                                                         37KB   | smarthost only, no configuration required, MIME, attachements, IPv6, SMTP auth                                                                                                       
-| [[packages:pkgdata_owrt18_6:ssmtp]]              | 2.64-1.1                                              | //libopenssl//                                   11669  | SSL support, smarthost only, SMTP auth, no longer available since OpenWRT 21.02                                                                          +| [[packages:pkgdata_owrt18_6:ssmtp]]              | 2.64                       | //libopenssl//                                    11KB   | SSL support, smarthost only, SMTP auth. No longer available since OpenWRT 21                                                                                                      
-[[packages:pkgdata:mini-sendmail]]               | //package not present//                                                                                4726   | smarthost only, no configuration required                                                                                                                +| mini-sendmail                                    | //no package//                                                      5KB    | smarthost only, no configuration required. No longer available since OpenWRT 17                                                                                                                                           
-| [[packages:pkgdata: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  | +| [[packages:pkgdata:emailrelay]]                  2.3                        | //libc// //libssp// //libopenssl// //libstdcpp//  350KB  | 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. In v2.5 can deliver mail directly. See [[:docs:guide-user:services:email:emailrelay]]  | 
-| [[docs:guide-user:services:email:xmail|XMail ]]  | //package isn't present but available for compile //  | //libopenssl//                                                                                                                                                                                                   |+| [[docs:guide-user:services:email:xmail|XMail ]]  | //no package//    | //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.+"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. E.g. it won't make a DNS lookup of the email address for MX record.
  
-===== Using mailsend =====+===== Using msmtp =====
  
 ==== Description ==== ==== Description ====
  
 +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).
 +
 +[[https://marlam.de/msmtp/|Official site]] - Sources and documentation
 +
 +==== Installation ====
 <code> <code>
-Mailsend is a simple command line program to send mail via SMTP protocol.+opkg install msmtp-mta
 </code> </code>
  
-Being quite lightweight and not requiring any configuration, mailsend is ideal for sending mails in shell scripts.+Installing ''msmtp-mta'' package will also create necessary ''sendmail'' symlink. If you do not need ''sendmail'' command (unlikely) then install only ''msmtp'' package.
  
-[[https://github.com/muquit/mailsend]] - Sources and issues +==== Configuration ==== 
-==== Installation ====+For router configuration, you very likely do not want to receive emails to local mailboxes. Define aliases file ''/etc/aliases.msmtp'' to send all local mails to your admin email:
  
-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:+<code - /etc/aliases.msmtp> 
 +defaultadmin@example.com 
 +</code>
  
-<code> +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. 
-opkg install mailsend + 
-opkg install mailsend-nossl+Here is an example configuration using Gmail that works with 2FA and an app password: 
 + 
 +<code bash /etc/msmtprc
 +# A system wide configuration file. 
 +# It defines a default account. 
 +# This allows msmtp to be used like /usr/sbin/sendmail. 
 + 
 +# Set default values. 
 +defaults 
 +aliases /etc/aliases.msmtp 
 +syslog LOG_MAIL 
 + 
 +# Gmail configuration that works with 2FA and an app password. 
 +# Use TLS on port 465. On this port, TLS starts without STARTTLS. 
 +account gmail 
 +host smtp.gmail.com 
 +port 465 
 +auth on 
 +tls on 
 +tls_starttls off 
 +from_full_name Apartment Router 
 +from home.lab@gmail.com 
 +user home.lab@gmail.com 
 +password abcd efgh ijkl mnop 
 + 
 +# Select the default account 
 +account default : gmail
 </code> </code>
  
-==== Usage ====+Now symlink ''msmtp'' to ''sendmail'' with ''ln -s /usr/bin/msmtp /usr/sbin/sendmail'' - this is not necessary if ''msmtp-mta'' was installed instead of ''msmtp''.
  
-Simple usage:+Also you may configure env variables ''EMAIL'' for From address and ''SMTPSERVER'' to specify smarthost.
  
-<code> +==== Sending mail ==== 
-mailsend -f root@openwrt -t foo@example.com -smtp smtp.example.com -sub "My subject" -msg-body /tmp/body+ 
 +<code bash
 +echo -e "Subject: Test mail\n\nThis is a test \"message\"." | sendmail abcd 
 +echo -e "Subject: Test mail\n\nThis is a test \"message\"." | sendmail -"<something@your-domain.tld>" "<recipient@destination.tld>"
 </code> </code>
  
-For advanced usage (MIME attachements, authentication, BCC, etc), see:+Note that the //sendmail// command (''/usr/sbin/sendmail''is a symlink to ''/usr/bin/msmtp''.
  
 +Use ''logread'' to check for the following log entry:
 <code> <code>
-mailsend -+Mon Oct 14 23:35:55 2024 mail.info msmtp: host=smtp.gmail.com tls=on auth=on user=******@gmail.com from=******@gmail.com recipients=admin@example.com mailsize=181 smtpstatus=250 smtpmsg='250 2.0.0 OK  1728948955 b640f23e62c3d-c9d29717ba4su6358366z.33 gsmtp' exitcode=EX_OK
-mailsend -example+
 </code> </code>
  
-===== Using msmtp =====+ 
 +===== Using ssmtp =====
  
 ==== Description ==== ==== Description ====
 +
 +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 configuration.
 +
 +[[https://tracker.debian.org/pkg/ssmtp|Official site]]
 +
 +==== Installation ====
  
 <code> <code>
-msmtp is an SMTP client. In the default mode, it transmits a mail to +opkg install ssmtp
-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.+
 </code> </code>
  
-Since msmtp understands standard sendmail options, it can be used in places where sendmail is expected (e.g. PHP code).+==== Usage ====
  
-[[https://marlam.de/msmtp/|Official site]] - Sources and documentation+ssmtp expects its two configuration files named ''/etc/ssmtp/revaliases'' and ''/etc/ssmtp/ssmtp.conf''. Both are self-explaining: 
 + 
 +<code bash /etc/ssmtp/ssmtp.conf> 
 +root=arnold@gmx.net 
 +mailhub=mail.gmx.net:465 
 +rewriteDomain=gmx.net 
 +hostname=gmx.net 
 +FromLineOverride=YES 
 +UseTLS=YES 
 +#UseSTARTTLS=YES 
 +</code> 
 + 
 +<code bash /etc/ssmtp/revaliases> 
 +# Format: local_account:outgoing_address:mailhub 
 +root:arnold@gmx.net:mail.gmx.net:465 
 +</code> 
 + 
 +To use the program, with SMTP auth: 
 + 
 +<code bash> 
 +cat /etc/banner | ssmtp -vvv -auultranerd@universum.tb -ap123password456 someguy@gmx.net 
 +</code> 
 + 
 + 
 +===== Using BusyBox sendmail ===== 
 + 
 +  - [[https://busybox.net/downloads/BusyBox.html#sendmail|Documentation]] 
 +  [[https://git.busybox.net/busybox/tree/mailutils/sendmail.c|Sources]] 
 + 
 +==== Description ==== 
 + 
 +The BusyBox sendmail is a smallest possible implementation but it must be compiled. It works only in smarthost mode.
  
 ==== Installation ==== ==== Installation ====
-<code>opkg install msmtp</code> 
  
-==== Configuration ==== +Enable the applet during compilation in menuconfig: ''BusyBox options'',  ''Mail'' and ''sendmail''
-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.+Additionally you may want to enable [[https://busybox.net/downloads/BusyBox.html#makemime|makemime]] applet that helps to send files with attachments.
  
-Here is an example configuration using Gmail that worlks with 2FA and an app password:+==== Usage ==== 
 +You need to configure ''SMTPHOST'' env variable with the smarthost SMTP server to use. 
 +Instead of the variable you may use an option ''-S server[:port]'' to specify the SMTP server.
  
-<code> +You may also need ''SMTP_ANTISPAM_DELAY'' env to bypass the Greylisting antispam if it enabled for submission.
-# 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 
  
-defaults +===== Using mailsend =====
-account default+
  
-host smtp.gmail.com +==== Description ====
-port 465 +
-auth on +
-tls on +
-tls_starttls off+
  
-from abc@gmail.com +Mailsend is a simple command line program to send mail via SMTP protocol.
-user abc@gmail.com +
-password app_passwd_here+
  
-syslog LOG_MAIL+Being quite lightweight and not requiring any configuration, ''mailsend'' is ideal for sending mails in shell scripts. 
 + 
 +[[https://github.com/muquit/mailsend]] - Sources and issues 
 + 
 +==== Installation ==== 
 + 
 +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: 
 + 
 +<code> 
 +opkg install mailsend 
 +opkg install mailsend-nossl
 </code> </code>
  
-Now symlink ''%%msmtp%%'' to ''%%sendmail%%'' with ''%%ln -s /usr/bin/msmtp /usr/sbin/sendmail%%''+==== Usage ==== 
-==== Sending mail ====+ 
 +Simple usage: 
 + 
 +<code bash> 
 +mailsend -f root@openwrt -t foo@example.com -smtp smtp.example.com -sub "My subject" -msg-body /tmp/body 
 +</code> 
 + 
 +For advanced usage (MIME attachments, authentication, BCC, etc), see: 
 <code> <code>
-echo -e "Subject: Test mail\n\nThis is a test \"message\"." | sendmail -f "<something@your-domain.tld>" "<recipient@destination.tld>"+mailsend -
 +mailsend -example
 </code> </code>
  
-Note that //sendmail// (''%%/usr/sbin/sendmail%%'') is a symlink to ''%%/usr/bin/msmtp%%''. 
  
  
Line 116: Line 200:
 ==== Description ==== ==== Description ====
  
-^ Name ^ Version ^ Dependencies ^ Size ^ Description +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. 
-| 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.  |+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.
  
 [[https://acme.com/software/mini_sendmail/|Official site]] [[https://acme.com/software/mini_sendmail/|Official site]]
 +
 ==== Installation and Configuration ==== ==== Installation and Configuration ====
  
-<code>opkg install mini-sendmail</code>+<code> 
 +opkg install mini-sendmail 
 +</code>
  
 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): 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):
Line 131: Line 218:
  
 ==== Example ==== ==== Example ====
 +
 <code bash> <code bash>
 mini_sendmail -ssmtp.mail.yahoo.com -p465 -t foo@example.com < input_file mini_sendmail -ssmtp.mail.yahoo.com -p465 -t foo@example.com < input_file
Line 147: Line 235:
 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. 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.
  
-===== Using ssmtp ===== 
  
-==== Description ==== 
  
-<code> 
-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 
-configuration. 
-</code> 
- 
-==== Installation ==== 
- 
-<code>opkg install ssmtp</code> 
- 
-==== Usage ==== 
- 
-ssmtp expects its two configuration files named ''/etc/ssmtp/revaliases'' and ''/etc/ssmtp/ssmtp.conf''. Both are self-explaining: 
- 
-<code> 
-# /etc/ssmtp/ssmtp.conf 
-root=arnold@gmx.net 
-mailhub=mail.gmx.net:465 
-rewriteDomain=gmx.net 
-hostname=gmx.net 
-FromLineOverride=YES 
-UseTLS=YES 
-#UseSTARTTLS=YES 
-</code> 
- 
-<code> 
-# /etc/ssmtp/revaliases 
-# Format: local_account:outgoing_address:mailhub 
-root:arnold@gmx.net:mail.gmx.net:465 
-</code> 
- 
- 
- 
- 
-To use the program, with SMTP auth: 
- 
-<code bash> 
-cat /etc/banner | ssmtp -vvv -auultranerd@universum.tb -ap123password456 someguy@gmx.net 
-</code> 
  • Last modified: 2024/12/14 23:20
  • by stokito