fetchmail README
================

Introduction
------------

Fetchmail is a free, full-featured, robust, well-documented remote mail 
retrieval and forwarding utility intended to be used over on-demand TCP/IP 
links (such as SLIP or PPP connections).  It retrieves mail from remote mail 
servers and forwards it to your local (client) machine's delivery system, so it 
can then be be read by normal mail user agents such as mutt(1), elm(1) or 
Mail(1).

Fetchmail supports all standard mail-retrieval protocols in use on the 
Internet: POP3 (including some variants such as RPOP, APOP, KPOP), IMAP4rev1 
(also IMAP4, IMAP2bis), POP2, IMAP4, ETRN, and ODMR. On the output side, 
fetchmail supports ESMTP/SMTP, LMTP, and invocation of a local delivery agent.

Fetchmail also fully supports authentication via GSSAPI, Kerberos 4 and 5, 
RFC1938 one-time passwords, Compuserve's POP3 with RPA, Microsoft's NTLM, Demon 
Internet's SDPS, or CRAM-MD5 authentication a la RFC2195.

Fetchmail supports end-to-end encryption with OpenSSL or wolfSSL (the latter 
only on C99 or newer compilers), do read README.SSL for details on fetchmail's 
configuration and README.SSL-SERVER for server-side requirements.  NOTE! To be 
compatible with earlier releases, fetchmail 6.4 default behaviour is more 
relaxed than dictated by recommendations - while it does away with SSLv2, only 
negotiates SSLv3 if forced to, it will by default still negotiate TLS v1.0.

Also note that if used with wolfSSL, many texts will still read OpenSSL
because fetchmail uses wolfSSL's OpenSSL compatibility API.

Portability
-----------

The fetchmail code was developed under Linux, but has also been extensively 
tested under the BSD variants, AIX, HP-UX versions 9 and 10, SunOS, Solaris, 
NEXTSTEP, OSF 3.2, IRIX, and Rhapsody once upon a time.

The current maintainer does not have access to these systems, and assumes that
the system is at least Single-Unix-Specification V2 compatible, yet fetchmail
should be compilable by a C89 compiler. It currently ships with a copy of the
trio library for systems that lack snprintf(). A further requirement is that
either realpath() permits its 2nd argument to be NULL for auto-allocation,
or that otherwise PATH_MAX be defined.

Fetchmail should be able to be compiled with C89, C99, C11, C++98, C++03,
C++11, C++14 compilers, but not C++17 because the "register" keyword is
used in some parts of the code.

Future fetchmail releases will require modern language features such as
"long long" and others, so this release is the last to support C89.

Further reading
---------------

The INSTALL file describes how to configure and install fetchmail.

See the distribution files FEATURES for a full list of features, NEWS for 
detailed information on recent changes, NOTES for design notes, and TODO for 
a list of things that still need doing.  If you want to hack on this code, 
a list of known bugs and to-do items can be found in the file todo.html.

Status, source code
-------------------

The fetchmail code appears to be stable and free of bugs affecting normal 
operation (that is, retrieving from POP3 or IMAP in single-drop mode and 
forwarding via SMTP to a local mail transfer agent).

You can get the code from the fetchmail home page:

	https://www.fetchmail.info/
	https://fetchmail.sourceforge.io/

The code is being maintained in a Git repository, see README.git for details.

Enjoy!

							-- esr, ma
