getmail changes since version 2.x:
----------------------------------

Version 3.2.5
17 September 2004

  -SECURITY: previous versions of getmail were vulnerable if the administrator 
  chose to run getmail as root and deliver to maildirs under the 
  control of a local malicious user.  By exploiting a race condition, getmail 
  could be made to create files in a directory of the local user's choosing. Not 
  exploitable if root did not deliver messages to maildirs/mboxes under the 
  control of an untrusted user.  Not exploitable remotely.  Thanks: David 
  Watson.  My gratitude to David for his work on finding this problem.
  Version 3.2.5 will now refuse to deliver as root.  If you need to deliver to 
  untrusted local users, do it with groups or upgrade to getmail 4.2.0, which 
  delivers messages in child processes after dropping privileges.

Version 3.2.4
6 May 2004

  -change abort() to try writing the oldmail file before quitting, so
  that on the majority of server/network errors, previously delivered messages
  are still remembered as "not new".  Thanks to Rick Richard for the report.

Version 3.2.3
29 April 2004

  -change to allow external command delivery when running on Windows.
  Thanks to Andrey Belousov for the report.
  -fix typo in docs ("my" instead of "by").  Thanks to Tom Cosgrove for
  spotting it.

Version 3.2.2
23 March 2004

  -Add an error handler for the case where a POP3 server returns a message that 
  isn't even close to valid 822 format, particularly one where the first line
  in the message header is a continuation line (starts with whitespace).
  Thanks to Alexandre Pauziès for the report.
  
Version 3.2.1
13 October 2003

  -Change the "over max message size of %(max_message_size)i, skipping ..."
  message from informational to warning so it can be seen when using
  -q/--quiet/verbose=0.  Thanks to Volker Kuhlmann for the report.
  -Change error message resulting from failed APOP attempt.  Thanks to 
  Matthias Andree for the report.
  
Version 3.2.0
22 September 2003

  -Add workaround for differences in Python poplib; an incompatible change
  was introduced (apparently in 1.6) to Python's library, where session.retr()
  previous returned raw lines, but now it returns the un-stuffed lines.
  getmail now has to conditionally un-stuff lines depending on the version
  of the Python interpreter in use.  Reported to me by Fredrik Steen, 
  maintainer of the Debian package of getmail.

Version 3.1.8
22 July 2003

  -Add command_add_fromline directive to control prepending mbox-style From_ 
  lines to command deliveries.  Defaults to 1, the previous behaviour.  Set
  to 0 to disable.  The need for this was simultaneously discovered by
  both Robin Bowes and Stephen Giles.

Version 3.1.7
29 May 2003

  -getmail_mbox.py was missing an import for the string module.  Thanks to Emily 
  Jackson for the report.  This was introduced in 3.1.6.

Version 3.1.6
28 May 2003

  -Argh; my change to getmail_mbox was incomplete -- not only would getmail
  not put duplicate From_ lines in, it would escape the single one that it
  did.  This fixes it, so don't bother filing a bug report about this one.

Version 3.1.5
28 May 2003

  -Fredrik Steen reported that getmail was adding a duplicate From_ line
  when using getmail_mbox to deliver to mbox files.  Fixed.
  -Added -q and --quiet flags to getmail_mbox to suppress warning message.

Version 3.1.4
27 May 2003

  -removed the experimental message_filter code; it was unworkable.  If you
  want to filter messages, use a filtering MDA.  getmail works fine with
  maildrop, procmail, and other MDAs.  Thanks to Dan Hensley for experimenting
  with the message_filter functionality.

Version 3.1.3
23 April 2003

  -message logging inconsistently used local time; changed to GMT for 
  consistency.  Thanks to Markus Vetter for the report.

Version 3.1.2
3 April 2003

  -address_no_brackets couldn't handle empty strings.  Fixed; thanks to
  Fredrik Steen for the report.

Version 3.1.1
14 March 2003

  -Add additional info to message log (msg #, msg count, size) "new msg"
  status line.  Thanks to Payal Rathod for the feature request.

Version 3.1.0
21 February 2003

  -Rename the recipient_header directive to "envelope_recipient".  There was
  simply too much confusion about it.  Sorry, but you'll have to update
  your getmailrc file and rename this directive if you're using it.  This
  version was going to be 3.0.5, but this change necessitates bumping the
  version up to 3.1.0.
  -Include separate callable program for mbox delivery.  The program,
  getmail_mbox, is based on the mbox delivery code in getmail version
  2.3.  It assumes mboxrd format and flock locking; if other programs
  on your system expect a different subtype of mbox format or use a different
  locking method, you can corrupt your mbox file.  Use at your own risk.
  You can use this in a command delivery target from getmail
  as "|/path/to/getmail_mbox /path/to/mboxfile" .
  -In a similar vein, include separate callable program for maildir delivery.
  The program, getmail_maildir, uses the same maildir delivery code as
  getmail.  You can use this in a command delivery target from getmail
  as "|/path/to/getmail_maildir /path/to/maildir/" .  This is mostly useful
  if you want to deliver to a maildir after doing something else to the message,
  and can be used in place of safecat.
  -Add message filtering.  You can now pass messages through arbitrary
  filters before delivery; specify one or more message_filter directives,
  each of which is a command and arguments.  The filter(s) should read the
  message from stdin, write to stdout, and exit 0 for success, 99 to drop
  the message in the bitbucket, and anything else to indicate an error.
  No docs for this yet.
  -getmail could drop the final newline when delivering to Maildirs in
  some circumstances.  Thanks to Jason Mastaler for the report and testing.

Version 3.0.4
20 February 2003

  -Catch a user incorrectly specifying two values for recipient_header.
  Thanks to Francisco Stefano Wechsler for the report.
  -Update ConfParser to version 3.3, designed to make it easier to catch
  user configuration errors.
  -Update configuration-handling code to use new features of ConfParser 3.3
  above, report configuration errors more clearly.  Thanks to Francisco
  Stefano Wechsler for the report which got me looking at this.
  -Add explicit check for recipient_header specifying a known-incorrect
  value.  Thanks to Edward Davis for the report that got me looking at this.
  -Move some sanity checks around to report errors earlier.

Version 3.0.3
14 February 2003

  -Missing import in getmail_utilities.py affected those who let getmail
  prompt them for a password.  Thanks to Francisco Stefano Wechsler for the
  report.

Version 3.0.2
14 February 2003

  -My editor let CR LF line endings into getmail_utilities.py ; this caused
  problems for at least one person.  Thanks to Francisco Stefano Wechsler
  for the report.  Now fixed.

Version 3.0.1
13 February 2003

  -Have getmail report an error if local directives are specified but getmail
  is not operating in multidrop mode (through either of the "use_*env" or 
  "recipient_header" directives).  Thanks to Gerwin Krist for reporting that 
  this was not obvious.

Version 3.0.0
10 February 2003

  -Updated to version 1.23 of Timothy O'Malley's timeoutsocket.py
  from http://www.timo-tasi.org/python/timeoutsocket.py
  -not all configuration errors were being caught in ConfParser.  Updated
  ConfParser as a result; thanks to Christian Pelster for reporting and testing
  this.
  -Move lots of code around.  Much has been moved into separate files.
  Much other code has been cleaned up.
  -Add support for Demon's SPDS "*ENV" command for domain mailboxes.
  Thanks to Paul Clifford for the request and the pointer to Demon's 
  explanation of this protocol extension, submission of a patch to
  getmail 2.3.x for this feature, and for a testing 3.0 in its pre-release
  state.  Paul also submitted several patches during pre-release testing
  which I accepted.
  -Change main delivery loop; individual message delivery failures are
  not considered fatal errors any more.  The messages will be left on the
  server and retried.
  -Remove mbox delivery code.  Use an external MDA for this; for safety
  and reliability, all mbox-delivery programs on a system have to be compiled
  to use the same method of mbox locking in any case.  I don't use mbox
  files at all.
  -Simplify handling of oldmail data files.
  -Domain mailboxes are now only supported with explicit configuration of
  a header field which records the envelope recipient address or with *ENV.
  This removes a lot of code and makes the logic simpler.
  -Remove duplicate filtering option.  Use an external MDA for this.
  -Change maildir delivery algorithm; getmail will now try up to three times
  to generate a valid, unique name in maildir/tmp/, sleeping two seconds
  between tries as recommended by djb.  This code is also now moved into
  an independant function in getmail_utilities.py for easier use by others.
  The file naming convention has changed to djb's "modern delivery
  identifiers".
