LibESMTP is considered stable. Version 1.0.4 is the reccomended release of libESMTP and all users are urged to upgrade as soon as is practicable.

Dependencies

libdl/libltdl

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.

getaddrinfo()

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:

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

OpenSSL is required to build the SMTP STARTTLS extension and to build the 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.

Current Version

Tarballs are available for download using HTTP.

Use of previous libESMTP versions is not reccomended.

Configuration

Running ./configure with no arguments includes all non-experimental 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.

Other Distributions

Binary distributions and ports of libESMTP are available courtesy of the respective package maintainers.

Platform Maintainer Download Site
RedHat (RPM) Carlos Morgado ftp://chbm.nu/pub/
FreeBSD J.M. Cooper FreeBSD FTP
Debian GNU/Linux Jeremy T. Bouse Package: libesmtp5