LibESMTP is considered stable. Version 1.0.6 is the reccomended release of libESMTP and all users are urged to upgrade as soon as is practicable.
View ChangeLog
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.
libESMTP uses dlsym()
(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 getipnodebyname instead.
If your platform is one of these, there are a few options:
getaddrinfo layered over
gethostbyname or getipnodebyname is included
with libESMTP. Use
./configure --enable-emulate-getaddrinfo to build it.
If you have installed ISC BIND 9
the lightweight resolver library may be used instead of the standard
resolver. Use ./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.
Running
./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 --prefix or --with-gnu-ld,
./configure should build the correct configuration for most OS
distributions.
Occasionally ./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 ...
where 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
future releases.
From time to time some features of libESMTP may be deprecated prior to
eventual removal.
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.