aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: cf1b5a11d88207339c168853204ba14a3c963c45 (plain)
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
		The fetchmail announcement 

fetchmail is a full-featured, robust, well-documented POP2, POP3,
APOP, and IMAP batch mail retrieval/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 elm(1) or Mail(1).

The fetchmail code was developed under Linux, but should be readily
portable to other Unix variants (it uses GNU autoconf).  It has also
been ported to QNX; to build under QNX, see the header comments in the
Makefile.

The fetchmail program was originally authored (under the name
popclient) by Carl Harris <ceharris@mal.com>. I, Eric S. Raymond,
<esr@thyrsus.com> took over development in June 1996.  I subsequently
renamed the program `fetchmail' to reflect the addition of IMAP
support.  See the distribution files NEWS for detailed information on
recent changes and NOTES for design notes.

Before accepting responsibility for the popclient sources from Carl, I
had investigated and used and tinkered with every other UNIX
remote-mail forwarder I could find, including fetchpop1.9,
PopTart-0.9.3, get-mail, gwpop, pimp-1.0, pop-perl5-1.2, popc,
popmail-1.6 and upop.  I learned from all of them, and fetchmail is a
carefully-thought-out attempt to render obsolete every other program
in its class.

Here are fetchmail's main features.  Those unique to fetchmail are marked
with **.

	*  **POP2, POP3, **APOP, **RPOP and **IMAP support.

	** Host is auto-probed for a working server if no protocol is
	   specified for the connection.  Thus you don't need to know
	   what servers are running on your mail host in advance; the
	   verbose option will tell you which one succeeds.

	** Delivery via via SMTP to the client machine's port 25.  This
	   means the retrieved mail automatically goes to the system
	   default MDA as if it were normal sender-initiated SMTP mail.

	*  Easy control via command line or free-format run control file.

	*  Daemon mode -- fetchmail can be run in background to poll
	   one or more hosts at a specified interval.

	*  From:, To:, Cc:, and Reply-To: headers are rewritten so that 
	   usernames relative to the fetchmail host become fully-qualified
	   Internet addresses.  This enables replies to work correctly.
	   (Would be unique to fetchmail if I hadn't added it to fetchpop.)

	*  Strict conformance to relevant RFCs and good debugging options.
	   You could use fetchmail to test and debug server implementatations.

	*  Carefully written, comprehensive and up-to-date man page describing
	   not only modes of operation but also (**) how to interpret the most
	   common kinds of problems and what to do about deficient servers

	*  Rugged, simple, and well-tested code -- the author relies on it
           every day and it has never lost mail, not even in experimental
	   versions.

	*  Large user community -- fetchmail has inherited a significant
	   user base from Carl Harris's popclient community.   This means
	   feedback is rapid, bugs get found and fixed rapidly.

At this point, the fetchmail code appears to be stable and bug-free.
It will probably undergo substantial change only if and when support
for a new retrieval protocol or IMAP extensions are added.

You can easily find the latest version of fetchmail from Eric's home page:

	http://www.ccil.org/~esr

Just chase the link to the freeware collection.  Besides fetchmail, it
includes a tasty selection of Web authoring tools, programmer's aids,
graphics libraries, compilers for bizarre languages, games, and 
miscellaneous interesting hacks.  Enjoy!

							-- esr
y, type: ./configure The autoconfiguration script will spend a bit of time figuring out the specifics of your system. If you want to specify a particular compiler (e.g. you have gcc but want to compile with cc), set the environment variable CC before you run configure. The configure script accepts certain standard configuration options. These include --prefix, --exec-prefix, --bindir, --infodir, --mandir, and --srcdir. Do `configure --help' for more. POP2 support is no longer compiled in by default, as POP2 is way obsolete and there don't seem to be any live servers for it anymore. You can configure it back in if you want with `configure --enable-POP2', but leaving it out cuts the executable's size slightly. Support for CompuServe's RPA authentication method (rather similar to APOP) is available but also not included in the standard build. You can compile it in with `configure --enable-RPA'. Support for authentication using RFC1731 GSSAPI is available but also not included by default. You can compile it in with `configure --with-gssapi', which looks for GSSAPI support in standard locations (/usr, /usr/local). If you set --with-GSSAPI=DIR you can direct the build to look for GSSAPI support under DIR. If you want to build for debugging, CFLAGS=-g LDFLAGS=" " ./configure will do that. To enable multilingual support using GNU gettext, configure --enable-nls Advanced configuration: Specifying --with-kerberos=DIR or --with-kerberos5=DIR will tell the fetchmail build process to look in DIR for Kerberos support. Configure normally looks in /usr/kerberos and /usr/athena; if you specify this option with an argument it will look in DIR first. Unfortunately, there doesn't seem to be good standardization of where Kerberos lives. If your configuration doesn't match one of the four that fetchmail's configure.in knows about, you may find you have to hand-hack the Makefile a bit. You may also want to hand-hack the Makefile if you're writing a custom or bleeding-edge resolver library. In that case you will probably want to add -lresolv or whatever to the definition of LOADLIBS. It is also possible to explicitly condition out the support for POP3, IMAP, and ETRN (with configure arguments of --disable-POP3, --disable-IMAP, and --disable-ETRN respectively). However, none of these wins back more that 3 to 4K on an Intel box. If you're running QNX, edit the distributed Makefile directly. The QNX values for various macros are there but commented out; all you have to do is uncomment them. 3. MAKE You may find you need flex at version 2.5.3 or greater to build fetchmail. The stock lex distributed with some versions of Linux does not work -- it yields a parser which core-dumps on syntax errors. You can get flex at the GNU ftp site, ftp://prep.ai.mit.edu/pub/gnu. Run make This should compile fetchmail for your system. If fetchmail fails to build properly, see the FAQ section B on build-time problems. 4. INSTALL Lastly, become root and run make install This will install fetchmail. By default, fetchmail will be installed in /usr/local/bin, with the man page in /usr/local/man/man1. You can use the configure options --bindir and --mandir to change these. NOTE: If you are using an MTA other than sendmail (such as qmail, exim, or smail), see the FAQ (section T) for discussion of any special configuration steps that may be necessary. 5. SET UP A RUN CONTROL FILE See the man page and the file sample.rcfile for a description of how to configure your individual preferences. If you're upgrading from popclient, see question F4 in the FAQ file. 6. TEST I strongly recommend that your first fetchmail run use the -v and -k options, in case there is something not quite right with your server, your local delivery configuration or your port 25 listener. Also, beware of aliases that direct your local mail back to the server host! This software is known to work with the qpop/popper series of freeware POP3 servers; also with the IMAP2bis and IMAP4 servers that are distributed with Pine from the University of Washington; also with the Cyrus IMAP server from CMU. This covers all the servers normally hosted on Linux and *BSD systems. It also works with Microsoft Exchange, despite the fact that Microsoft Exchange is extremely broken (returns incorrect message lengths in LIST responses). 7. REPORTING BUGS You should read the FAQ file question G3 before reporting a bug. 8. USE IT Once you've verified your configuration, you can start fetchmail to run in background and forget about it. Enjoy!