extsmail releases

Download

extsmail is released under a BSD / MIT style licence.

Available as pre-built packages:

Formal releases:

  • extsmail 1.6 (2012-11-17) (60K)
    • Time out stalled sendmail processes. If a sendmail process hasn't read or written any data for 60 seconds, it is killed and later retried. This stops a stalled sendmail from perpetually blocking extsmail. Although rare, this scenario can happen e.g. when an interface goes down while an SSH session was open.
  • extsmail 1.5 (2012-07-13) (59K)
    • Ensure that all messages which can be sent are sent. Some messages may (temporarily or permanently) be unsendable (e.g. because of size) and shouldn't hold up others.
    • Use exponential backoff when retrying. Quite often, a send failure is just a brief blip, so retry quickly, and as retries fail, increase the length of time until the next retry.
    • Add user-configurable notifications for successful / unsuccessful sends. Allows users to easily be notified (e.g. via xosd) if mail has been sent and, if not, how long it has been since everything was sent.
    • Various portability improvements.
    • Improvements to batch mode to bring it in line with daemon mode.

Previous releases are available.

Development of extsmail uses git. If you wish to contribute to extsmail, it is recommended that you work with a check-out of the repository. You can get a copy with the following command:

$ git clone git://github.com/ltratt/extsmail.git
You can also view extsmail's online git repository. Patches are always gratefully received.

60 second install instructions

If you don't like reading manuals, most per-user configurations of extsmail can be accommodated with the following commands:
$ ./configure
$ make
$ make install
$ mkdir -p ~/.extsmail
$ echo spool_dir = \"~/.extsmail/spool_dir\" > ~/.extsmail/conf
Assuming you want to send e-mail to another machine via ssh, you then need to create the file ~/.extsmail/externals and put in the following configuration:
group {
    external mymachine {
        sendmail = "/usr/bin/ssh -q -C -l user mymachine.net /usr/sbin/sendmail"
    }
}
where mymachine is a human-friendly name given to an external (it does not effect processing), and user is your username on the remote machine mymachine.net.

Finally you need to run extsmaild as a daemon so that it sends your mail:

$ extsmaild -m daemon
You might want to put this command in a start-up script.

And with that you're done. If you want to do something more complex you'll need to read the detailed instructions (extsmail comes with complete man page documentation), but the above works perfectly well for the majority of cases.

Install

extsmail is a C application. It should be trivially portable to any POSIX compliant operating system. It can be installed as follows:
$ ./configure
$ make
$ make install
Please note that if, and only if, you are building from the git repository you will first need to execute make -f Makefile.bootstrap to build the configure script.