1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
libESMTP, version 0.8
-- oOo --
Brian Stafford <brian@stafford.uklinux.net>
What is libESMTP?
-----------------
LibESMTP is a library to manage posting (or submission of) electronic
mail using SMTP to a preconfigured Mail Transport Agent (MTA) such as
Exim. It may be used as part of a Mail User Agent (MUA) or another
program that must be able to post electronic mail but where mail
functionality is not the program's primary purpose.
LibESMTP is not intended to be used as part of a program that implements
a Mail Transport Agent.
It is hoped that the availability of a lightweight library implementing
an SMTP client will both ease the task of coding for software authors
and improve the quality of the resulting code.
Important
---------
libESMTP is currently under development and testing. Consequently
certain parts of the API are subject to change between releases of the
library and certain APIs and SMTP extensions have not yet been fully
implemented or tested.
Features
--------
Support for many SMTP extensions, notably PIPELINING (RFC 2920),
DSN (RFC 2554) and AUTH (RFC 2554). Also supported is the
sendmail specific XUSR extension which informs sendmail that the
message is an initial submission.
SASL
----
AUTH is implemented using a new SASL (RFC 2222) client library which is
currently integrated into libESMTP. It was felt that the Cyrus SASL
library was too complex for the needs of a client only SASL
implementation.
If there is sufficient interest in a LGPL SASL library, the SASL client
API will be split off into a seperate library in the future. There may
also be a case for implementing a server side SASL library along the
same lines as the client implementation.
Dependencies
------------
libltdl:
libESMTP requires that libltdl is installed on your system. Libltdl is
included in the libESMTP tarball. Libltdl is distributed with GNU
Libtool, which is available from http://www.gnu.org/software/libtool/
getaddrinfo:
You will need a modern resolver library providing the getaddrinfo API.
getaddrinfo is easier to use, protocol independent, thread-safe and
RFC 2553 and Posix standard.
An emulation of this is provided for systems that do not have it, however
it is reccommended that the version provided in recent versions of GNU
libc or BIND is used. Most people will already at least one of these
(e.g. virtually every Linux distro). There is also support for the
lightweight resolver distributed with BIND 9. BIND may be downloaded
from the ISC (http://www.isc.org/).
openssl:
OpenSSL (http://www.openssl.org/) 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.
Installation
------------
Please refer to INSTALL for generic installation instructions. LibESMTP
has a few options when configuring; ./configure --help will list them.
Balsa users: be sure to use the --enable-require-all-recipients when running
configure (--enable-all turns this on as well).
configure may complain that it cannot find getaddrinfo and suggest using
the --enable-gethostbyname option. This is not enabled automatically
since gethostbyname is deprecated in favour of the more modern function.
If this happens, you have a choice. Either take the easy option and do
as configure suggests or get a modern resolver library which implements
getaddrinfo, e.g. recent versions of ISC bind. Support for gethostbyname
is likely to be removed from libESMTP in the future.
Please note that if your system provides getaddrinfo it will always be
used. Support for gethostbyname cannot be enabled in this case.
Licence
-------
LibESMTP is licensed under the GNU Lesser General Public License and the
example programs are under the GNU General Public Licence. Please refer
to COPYING.GPL and COPYING for full details.
Obtaining libESMTP
------------------
LibESMTP may be obtained from:
http://www.stafford.uklinux.net/libesmtp/
Documentation
-------------
LibESMTP documentation is available on the web at:
http://www.stafford.uklinux.net/libesmtp/api.html
This probably (definitely) lags behind the actual source code.
What does the 'E' stand for?
--------------------------
The 'E' in libESMTP is there because support for a number of SMTP
extensions is built in to the library by design.
|