3 At this point, the fetchmail code appears to be stable and free of
4 bugs affecting normal operation (that is, forwarding to SMTP from a
5 single server host). It will probably undergo substantial change only
6 if and when support for a new retrieval protocol is added.
8 Test RPOP feature against a Unix server that has it. The protocol
9 transactions are certainly OK, the question is whether the rresvport()
10 authentication stuff does what's needed.
12 Support IMAP4 extensions for secure challenge-response, once they're actually
15 The configuration file lexer handles punctuation adjacent to keywords poorly.
16 Flex can be very mysterious at times.
18 Inflict severe pain on the person(s) responsible for removing LAST from POP3.
26 * Use kill(0, pid) to make lock handling a bit smarter (thanks to Johann
27 Vromans for the suggestion).
29 * Arrange for timeout of client after 5 minutes if connection to server is
30 dropped (thanks to Gaspar Sinai).
34 * Fix buggy getopt specification of P and p options.
36 fetchmail-1.7 (Tue Oct 8 11:32:44 EDT 1996):
40 * Noise words for rcfile syntax make English-like syntax possible.
42 * Make configure more GNUish; it understands --prefix and other standard
43 autoconf options now (see INSTALL for details)
45 * Better documentation of the new .fetchmailrc extensions and the slightly
46 stricter rules for ordering options.
48 * Expanded installation instructions including how to test for correct
49 operation without losing mail to misconfigured MDAs, alias loops, etc.
53 * You may have to rearrange the order of options in your .fetchmailrc.
54 The grammar for the new multiple-user syntax requires that server
55 options (protocol and port) come before any user options.
57 * Fixed core dump bug that was screwing configurations with no .fetchmailrc.
59 * Fixed broken 'p' option.
61 * `norewrite' and `rewrite' in .fetchrc were the inverses of what they
62 should have been (but the rewrite default was set correctly).
64 fetchmail-1.6 (Sun Oct 6 20:55:09 EDT 1996):
68 * You can now have multiple entries for the same server but different
69 users, and the right thing will happen (each user's mailbox will
70 be queried). Even better, you can now specify multiple users in a
73 * Restore --mda, seems some people either can't run a port 25 listener
74 due to bizarre dynamic-SLIP problems, or won't for security reasons.
76 * When delivering to an MDA, print error and die (before deleting the message!)
77 if the MDA returns nonzero status. Better safe than sorry.
79 * If fetchmail is called through a link named `popclient' it will look in
80 ~/.poprc for a run control file. Unless that file includes the deleted
81 options limit and localfolder this should actually work.
85 * Makefile fixes for correct linking on Sparcs and avoiding duplication of
86 the md5 files (leading to harmless install-time error messages).
88 * Fix a bonehead coding error in pop3_delete() that was masked by the
89 Intel register architecture. *blush* Thanks to Jay Anderson.
91 * Fix bug that prevented SMTP from being specified on the defaults line.
93 * Allow program to generate correct lockfiles when USER is undefined
96 * Allow program to run with no .fetchmailrc file again.
98 fetchmail-1.5 (Thu Oct 3 04:35:15 EDT 1996):
100 * Naturally, my decision to announce 1.4 on comp.os.linux.announce
101 immediately caused the code to manifest its first real bug --
102 a core dump when the "From:" header is spelled "from:" (all lower
105 * Update and expansion of NOTES.
107 * The --all and --flush flag validity checks move to driver.c.
109 fetchmail-1.4 (Wed Oct 2 09:22:37 1996):
111 * More man page improvements.
113 * Lexer changes to work around bison's "feature" of silently ignoring 0-value
114 tokens (caused options nokeep, norewrite, nofetchall, noskip to be no-ops).
116 fetchmail-1.3 (Tue Oct 1 05:49:49 1996):
118 * Significant man page improvements.
120 * Escapes for newlines in .fetchmailrc are now optional.
122 * Kill off -2 and -3 options, redundant popclient remnants.
124 * IMAP code simplification and robustification. Use FETCH FLAGS to find
125 seen messages. Code should now work even if unseen messages are
126 interspersed with seen ones, and even if messages are appended to the
127 mailbox during the run.
129 fetchmail-1.2 (Sat Sep 28 15:40:50 EDT 1996):
131 * The great option massacre. Remove --stdout, --limit, --local, --mda.
132 We get a significant code and complexity shrinkage this way (a lot of the
133 configuration machinery goes away too). These things are your MDA's job.
134 (This also kills off the lose-mail-on-disk-full bug, which I've never
135 seen but two users reported.)
137 * Link APOP support by default.
139 * Fix embarrassing Makefile bug.
141 fetchmail-1.1 (Sat Sep 28 09:21:10 EDT 1996):
143 * In POP3, don't send LAST if STAT shows count of waiting messages to be zero.
145 * Document APOP better, we know it works now.
147 * Lose the .fetchids file and give up on POP3 UIDs, they're a dead loss.
149 fetchmail-1.0 (Thu Sep 26 11:59:38 EDT 1996):
151 * SMTP forwarding and header-rewrite features work with POP2 now.
153 * Stricter RFC822 conformance, so SMTP to qmail works. Thanks to
154 Cameron MacPherson <unsound@oz.net> for these changes.
156 * The program is quieter but more informative now (suppress printing of
157 server greeting message; add the server host being queried to the
158 message count information line).
160 * Add `skip' option to make it easier to set up test entries.
162 * Name change (it ain't just for POP any more).
164 popclient-3.2 (Mon Sep 23 13:29:46 EDT 1996):
166 * RPOP support (coded at a user's request but untested).
168 * Ported to QNX (see the Makefile).
170 * Add Michael Schwendt's code for improved sizeticker.
172 * Improved RFC822 parsing (thanks to Rob Funk).
174 * Move the per-user lockfile to /tmp so it gets cleared at reboot time.
176 * Warn users that running concurrent instances of popclient is a bad idea.
178 * Try USER and HOME to set defaults before going to the password file.
179 This should work better in Sun NIS environments.
181 popclient-3.1 (Thu Sep 12 15:45:25 EDT 1996):
183 * MDA arguments are now dumped when using the -V option.
185 * Sendmail delivery from background seems to work now.
187 * We have IMAP2bis/IMAP4 support.
189 * Code now autoprobes for a POP3, IMAP, or POP2 server if no protocol is
192 * SMTP forwarding support. Thanks to Harry Hochheiser <harry@tigger.jvnc.net>
193 for this simple but clever idea. It's now the default delivery mode.
195 * If no UNIX From line is found, popclient will now synthesize a correct
196 line from the RFC822 From line.
198 * It is now possible to specify the host TCP/IP port number to connect to.
200 popclient-3.05 (Thu Aug 22 22:59:04 EDT 1996):
202 * Experimental support for RFC1725-compliant POP servers with the UIDL
203 command and without LAST.
205 popclient-3.04 (Wed Aug 21 00:22:44 EDT 1996):
207 * Logfile option works.
211 * Minor bug fixes for password querying and redirection to stdout.
213 popclient-3.02 (Fri Jul 19 11:37:56 EDT 1996):
215 * Correct buggy processing of nokeep/noflush/fetchall.
217 * Fix buggy -mda option processing.
219 * Added -N/--norewrite option.
221 * Delivery via sendmail now works in non-daemon mode.
223 popclient-3.01 (Mon Jul 1 13:33:51 EDT 1996):
225 * Fixed a lexical analyzer bug in quoted-string processing.
227 * Fixed a bug in dump_options that caused username to be displayed incorrectly.
229 * The lock assertion code was in the wrong place relative to the daemonize()
232 popclient-3.0 (Fri Jun 28 11:33:34 EDT 1996):
234 Eric S. Raymond <esr@thyrsus.com> hacked extensively on 3.0b6 and took over
235 the package with the consent of Carl Harris, the original implementor.
236 Some of the 3.0 feature additions were inspired by Sean Oh's fetchpop 1.8
237 code, and a few use code directly lifted from fetchpop. Here are my (Eric's)
240 CONFIGURATION AND BUILDING
242 * The autoconfigure script incorrectly assumed that all Linuxes use
243 /usr/bin/deliver. Under Linux it now checks for both /usr/bin/delivermail
246 * I added a distribution-maker production to Makefile.in.
248 OPTIONS AND COMMAND LINE
250 * I have removed the -p command-line option. Given that there's a run control
251 facility there is no excuse for encouraging users to put plaintext passwords
252 in scripts which might be readable.
254 * Calling popclient with no arguments now causes it to query or operate
255 on every host in the run control file.
257 * I have made --version more useful by having it dump the computed
258 connection options for each server specified.
260 * The user can now explicitly set an MDA (such as procmail) with the
261 new option -m or -mda. Various possible MDAs are listed on the man page.
265 * The run control file lexer now supports "-enclosed strings which may
268 * I added a --yydebug option to enable run control parser debugging at
269 runtime if the parser was generated with --debug. It's not documented.
271 * You may now have a `defaults' entry in the run control file which sets
272 overrideable values for other entries. See the man page for details.
274 * It is now possible to set keep, flush and fetchall in your run control
277 * Fixed incorrect numbering of source lines in run control file parse error
280 * The configure.in specification no longer uses the obsolete AC_TRY_COMPILE
281 macro (it uses AC_TRY_LINK instead).
285 * I have added mandatory locking of mailbox files where supported.
286 This will cover Linux systems, in particular.
288 * The default behavior is now to do lock-protected append on the user's
289 system mailbox rather than using delivermail or some other MDA.
290 (This is a performance hack.)
292 * The autoconfigure script now looks for standard mail locations. The
293 default mail delivery agent is used only if it can't find a mail spool
294 directory in the standard places.
296 FUNCTIONAL ENHANCEMENTS
298 * When using POP3, message headers are edited so that replies won't foo up.
299 Anything that looks like a mail ID local to the POP host gets @ and the
300 pop servername attached to it before being appended to the user's
301 mailbox or passed to an MDA.
303 * I have implemented daemon mode.
305 * I have added a lock check to ensure that there is only one popclient
306 running per user, and a --quit option to kill the currently running
311 * All changes and feature additions have been tested in actual use and are
312 documented on the man page.
314 * I have turned the comments in the sample run control file into a new manual
315 section documenting the file format.
317 MISCELLANEOUS BUG FIXES
319 * I fixed some de-initialization bugs in pop2.c and pop3.c that led to
320 fd leaks (these became painfully obvious when I tested daemon mode!).
322 * I've fixed the flaky parser error messages. They turned out to be due
323 to a misdeclaration of yytext.
325 These are Carl Harris's change notes from previous releases:
328 o "From " header fix in pop2.c and pop3.c
329 o Surpress "..." output when --stdout option specified in pop3.c
333 o various diagnostic/informational message fixes.
336 o Support for retrieving only new messages from maildrop when
338 o Support for retrieving only the first n lines of each message
340 o APOP authentication support.
341 o Buffered socket input.
344 This is a "new features" release.
345 o support for .poprc file.
346 o GNU-style long options.
347 o fixed passwords appearing in 'ps' output
348 o support for multiple servers on one command line
351 This is mostly a test of the autoconfigure integration.
352 Among the functions performed by the new configure script, is
353 the ability to detect known system types, configures the mail
354 delivery agent (MDA) correctly. This should permanently solve
355 the problem of using something other than an MDA for mail
356 delivery (which continues to plague Linux slackware 1.2.9).
357 For this beta, please check the values of MDA_PATH and MDA_ARGS
358 carefully. They should match the values found in your
359 sendmail.cf file on the line which begins with "Mlocal".
361 Other changes from popclient version 2.21:
363 o no longer uses getpass() from the C library. The
364 internal getpassword() function allows the use of long
367 o integrated GNU getopt() for long options. Long option
368 names will appear in a future beta.
370 o Several compiler warnings fixed.
372 o Fixed problems related to missing include files in