LibESMTP is considered stable. Source code is available from GitHub. The current version of libESMTP is 1.1.0. Earlier versions are not recommended. Clone the repository as follows:
$ git clone https://github.com/libesmtp/libESMTP.git
Alternatively release packages are available at https://github.com/libesmtp/libESMTP/releases/tag/v1.1.0
libESMTP has the following optional dependencies.
OpenSSL v1.1.0 or later is required to build the SMTP STARTTLS extension and to build the SASL NTLM authentication module. libESMTP may be built without OpenSSL, however most contemporary mail submission agents require TLS connections.
LibESMTP uses the Meson build system. Refer to the Meson manual for standard configuration options.
Meson supports multiple build system backends. To build with Ninja do the following:
$ meson [options] --buildtype=release builddir $ ninja -C builddir install
Note that the meson/ninja installer does not require an explicit
instead it will prompt for a password during install. This avoids polluting
builddir with files owned by root.
As well as the standard meson options, the following are supported:
|xdg||true, false||use XDG directory layout instead of ~/.authenticate|
|pthreads||enabled, disabled, auto||build with support for Posix threads|
|tls||enabled, disabled, auto||support the STARTTLS extension and NTLM authentication|
|lwres||enabled, disabled, auto||use the ISC lightweight resolver|
|bdat||true, false||enable SMTP BDAT extension|
|etrn||true, false||enable SMTP ETRN extension|
|xusr||true, false||enable sendmail XUSR extension|
Options are specified as
libesmtp-config script is removed from libESMTP-1.1.0 in favour of
pkg-config. Package maintainers should update build systems to account for
this. See the Wiki
for further information.
It’s not obvious how to use
scan-build with meson and ninja when the binary
does not have the default name. It also turns out the
variable must be set to the absolute pathname of the binary.
To build with the clang static analyser, assuming the scan-build binary is
scan-build-10, use the following:
SCANBUILD=`which scan-build-10` meson builddir [options] ninja -C builddir scan-build
Change to the
docs/ directory and run