LibESMTP is considered stable. Version 1.0.6 is the recommended release of libESMTP and all users are urged to upgrade as soon as is practicable.
The preferred download is via GitHub, however tarballs are available here for convenicnce.
Starting with version 1.0.7 libESMTP requires GNU libgsasl to be installed. Applications are encouraged to migrate to libsasl as soon as practicable.
The previous SASL code provided by libESMTP is deprecated but will remain available for the time being. Both SASL mechanisms coexist peacefully allowing applications to migrate to libgsasl at their own pace.
(part of SUSv2/3
and IEEE Std 1003.1-2001 aka Posix) to load plugins. If your
platform does not supply
dlsym(), you must
install libltdl before configuring libESMTP.
Libltdl is part of GNU libtool which is available from http://www.gnu.org/software/libtool/ or one of the GNU mirrors.
The Posix/RFC 2553
getaddrinfo() function which supports
IPv6 is used to resolve domain names. Please note that
gethostbyname is not used for this purpose.
Unfortunately, a few platforms either do not yet provide
getaddrinfo or use
If your platform is one of these, there are a few options:
getipnodebynameis included with libESMTP. Use
./configure --enable-emulate-getaddrinfoto build it.
If you have installed ISC BIND 9
the lightweight resolver library may be used instead of the standard
./configure --with-lwres[=DIR] to
enable this option. Please note that the lightweight resolver requires
the use of
lwresd also distributed with BIND 9.
OpenSSL is required to build the SMTP STARTTLS extension and, if deprecated features are enabled, to build the SASL NTLM authentication module. If you have no need for either of these features, you do not need OpenSSL.
Please note that OpenSSL is distributed under an old BSD style
licence. If this is problematic for you, use the
--without-openssl option when configuring. LibESMTP will
be built without support for features which depend on OpenSSL and the
resulting binary will be pure LGPL.
./configure with no arguments includes all non-experimental
and deprecated features. This means that some features not enabled by default in previous
releases are now included.
Conversely, some features formerly enabled by default must
now be requested explicitly.
With the exception of
features such as setting
./configure should build the correct configuration for most OS
./configure will detect functions in the C
runtime libraries but special
#defines are required to enable
function prototypes and constants - this seems to be a particular problem with
getaddrinfo() on some platforms. If this happens try
CPPFLAGS="-DFOO=1" ./configure ...
FOO is the macro referenced in the relevant header file.
Let me know if this is needed so I can update the configure script for
From time to time some features of libESMTP may be deprecated prior to
Deprecated features remain available unless disabled. Using
./configure --disable-deprecated-features eliminates
deprecated code and macros from libESMTP and its header files.
Beware that this may break certain applications.