[Note that all dates are in ISO 8601 format, e.g. YYYY-MM-DD to ease sorting]

Release 1.1b1
=============

Skip Montanaro    2008-12-06  Start requiring Python >= 2.4.
Skip Montanaro    2008-11-23  Route all pickle reads and writes through safepickle module.
Skip Montanaro    2008-11-23  Pick off a bunch of pylint nit (still tons to do).

Release 1.1a5
=============

Skip Montanaro	  2007-07-14  Add train and train_mime methods to XML-RPC plugin (from Marian Neagul).
Skip Montanaro    2007-07-15  Switch repository from CVS to Subversion.

Release 1.1a4
=============

Skip Montanaro    2006-09-09  Dump NetPBM decode support in favor of PIL
Skip Montanaro    2006-09-09  First crack at handling image sequences
Skip Montanaro    2007-05-11  IMAP patch for contrib/tte.py (Dave Abrahams)
Skip Montanaro    2007-05-11  Remove duplicate use of --cullext flag to contrib/tte.py
Skip Montanaro    2007-05-22  Note missing file name in error message - FileStorage.py
Skip Montanaro    2007-05-24  Set MinTTL to one day in dnscache.py
Skip Montanaro    2007-05-25  Catch broader exception in ImageStripper.py when image load fails (Sjoerd Mullender)
Skip Montanaro    2007-06-10  Add core_server.py & friends - plugin-based server

Release 1.1a3
=============

Skip Montanaro    2006-08-18  Update pycksum.py to try and identify more duplicates
Skip Montanaro	  2006-08-14  Add scale and charset options to ImageStripper
Skip Montanaro	  2006-08-13  Stitch spam images back together properly, add a couple more tokens
Skip Montanaro	  2006-08-10  Add support for PIL to ImageStripper.py
Skip Montanaro	  2006-08-09  Cache x-lookup_ip in a pickle instead of trying to use anydbm or zodb
Skip Montanaro	  2006-08-06  Add crude OCR capability to try and parse image-based spam using Ocrad & NetPBM
Skip Montanaro	  2006-08-06  Add x-short_runs option
Skip Montanaro	  2006-08-06  Add x-image_size option & corresponding token
Skip Montanaro	  2006-08-06  Add Matt Cowles' x-lookup_ip extension w/ slight modifications
Skip Montanaro	  2006-08-06  Add profiling using cProfile (if available) to sb_filter.py
Skip Montanaro	  2006-08-06  Delete -d and -p flags from spamcounts.py
Skip Montanaro	  2006-08-06  Refactor basic text tokenizing out of tokenize_body into a separate method, tokenize_text
Skip Montanaro	  2006-08-05  Explicitly close ZODB store in tte.py
Tony Meyer	  2006-06-22  Fix bug in regex preventing valid IPs
Toby Dickenson	  2006-06-12  Suppress spurious duplicate From_ lines in sb_bnfilter.py
Tony Meyer	  2006-06-10  Add simple parts of [ 824651 ] Multibyte message support
Tony Meyer	  2006-05-06  Enable -o command line option setting, and follow TestDriver directories in testtools/mksets.py
Skip Montanaro	  2006-04-23  Reduce sensitivity of spamcounts.py to classifier changes
Tony Meyer	  2006-04-22  Set zodb cache size to 10,000


Release 1.1a2
=============
Tony Meyer        2006-04-03  Add [ 1081787 ] Adding the version only to sb_filter.py
Tony Meyer        2006-04-03  Fix [ 1383801 ] trustedIPs wildcard to regex broken
Tony Meyer        2006-04-02  Fix [ 1387699 ] train_on_filter=True needs the db to be opened read/write
Tony Meyer        2006-04-02  Fix [ 1387709 ] If globals:dbm_type is non-default, then don't use whichdb.
Tony Meyer        2005-11-27  Install the conversion utility and offer to run it on Windows install.
Tony Meyer        2005-11-26  Add conversion utility to easily convert dbm to ZODB.
Tony Meyer        2005-11-26  Change database names to hammie.fs and messageinfo.fs
Tony Meyer        2005-11-26  Have ZODBClassifier honour read-only mode.
Tony Meyer        2005-11-26  Change default storage to ZODB.
Tony Meyer        2005-11-26  Remove backwards compatibility option to use True for dbm and False for pickle.
Tony Meyer        2005-11-26  Fix closing SSL connections in POP3 proxy.
Tony Meyer        2005-11-26  Abort failed ZODB transactions.
Tony Meyer        2005-11-15  Fix exception header adding.
Tony Meyer        2005-11-15  Tidy up the way that messages keep track of the messageinfo database.
Tony Meyer        2005-11-15  Add ZODB version of MessageInfo class.
Tony Meyer        2005-11-15  Let the notate_ options be turned off.
Tony Meyer        2005-11-15  Add simple handling of ZODB ConflictErrors.
Tony Meyer        2005-11-15  Pack ZODB database.
Tony Meyer        2005-11-15  Fix tokenizer so that the -o switch can be used with all options.
Tony Meyer        2005-11-15  Only run through expiry if messages might expire.
Richie Hindle     2005-11-15  Change default action for review page to discard for ham and spam.
Tony Meyer        2005-07-08  imapfilter: If a folder (e.g. ham_folder) isn't selected, then don't try and expunge it.
Sjoerd Mullender  2005-07-03  imapfilter: It seems it is possible that we get an invalid date string from self.extractTime(), so protect against that.
Mark Hammond      2005-06-21  Update Outlook folder dialogs so we work with new and old pywin32 versions.
Tony Meyer        2005-06-03  Use has_key() and not "in" for Python 2.2 compat.
Skip Montanaro    2005-06-03  sb_filter: If database doesn't exist, initialize it.  Closes the ancient #759917.
Sjoerd Mullender  2005-05-30  imapfilter: After closing a folder, there is no current folder, so set current_folder to None, avoiding a crash on close.
Tony Meyer        2005-05-26  Use get_content_type instead of the deprecated get_type
Tony Meyer        2005-05-22  ProxyUI: Fix the handling of the notate_to and notate_subject options.
Sjoerd Mullender  2005-05-19  imapfilter: In each iteration, create a new IMAPSession object and hence a new connection to the server.
Tony Meyer        2005-05-13  Fix [ 1182754 ] 1.1a1: imapfilter browser chokes on incorrect password
Tony Meyer        2005-04-26  Add ability to handle unsures to fpfn.py
Tony Meyer        2005-04-26  Add [ 618932 ] fpfn.py: add interactivity on unix
Tony Meyer        2005-04-22  Fix [ 1182671 ] When cache directories are full, 1.1a1 starts slowly
Tony Meyer        2005-04-22  Fix [ 1187208 ] import into CDB chokes on 8-bit chars
Tony Meyer        2005-04-21  Use the os.path.basename as the database name for a ZODB FileStorage database, so that if the database is moved it will still work.
Tony Meyer        2005-04-21  Add [ 1182703 ] sb_imapfilter binary should output to log
Skip Montanaro    2005-04-19  tte.py: Include time to create & reverse mailbox in accounting for each round
Tony Meyer        2005-04-14  Fix [ 1179055 ] minor UI correction needed (1.1.a1)
Tony Meyer        2005-04-14  Highlight current row of review table with a little bit of javascript.
Tony Meyer        2005-04-13  Fix [ 1181160 ] Language fallback doesn't work
Tony Meyer        2005-04-07  Add basic options to sort+group.py

Release 1.1a1
=============
Tony Meyer        2005-03-16  Optionally load configuration file for each imap server.
Tony Meyer        2005-03-09  Use a blocking socket when connecting with sb_server, so that with Python 2.4 we don't end up with never-ending reports of errors.
Tony Meyer        2005-02-23  Add [ 1144670 ] SMTP slow on large files
Tony Meyer        2005-02-14  Handle multiple imap servers.  Adds [ 1122067 ] Feature Request: Config sb_imapfilter for multiple accounts
Tony Meyer        2005-02-14  New script: A little script that outputs to stdout a 'show clues' report like the one that Outlook creates, with the clues, tokens and message stream.
Kenny Pitt        2005-02-12  Add a "Notifications" tab to SpamBayes Manager for configuring notification sounds.
Tony Meyer        2005-02-08  Move the ensureDir function to storage, as many scripts use it.
Tony Meyer        2005-02-01  Update setup script to use Inno Setup 5.x rather than 4.x (patch from Kenny Pitt)
Tony Meyer        2005-01-28  Distribute mscvr71.dll, as Microsoft recommend.
Tony Meyer        2005-01-28  The 'fix' for escaping subject lines was incorrect; do it correctly.
Tony Meyer        2005-01-24  Add new part of [ 1106457 ] bsddb185 has to be covered in dbmstorage.py
Tony Meyer        2005-01-21  Fix [ 1106457 ] bsddb185 has to be covered in dbmstorage.py
Tony Meyer        2005-01-17  Add a method to generate documentation for options that suits a HTML documentation file.
Tony Meyer        2005-01-17  OptionsClass: Add an optional flag add_comments to display().  If this is True (False by default)  then the help string for the option is added in comments above the option.
Tony Meyer        2005-01-17  Outlook: Remove migrating the data directory - the need for this predates any of the combined binaries, so should be past now.
Tony Meyer        2005-01-17  Outlook: Look for a {profile name}_bayes_customize.ini file in the data directory, and add that (lastly) to the spambayes configuration files to load.  This allows per-profile spambayes config changes, and makes things more consistent with the Outlook options.
Tony Meyer        2005-01-14  Try and work around the reasonably common problems with imaplib and OS X.
Kenny Pitt        2005-01-12  Outlook: Now that we have more space in the Manager dialog, split the "Filter status" info into separate lines for better readability.  Also add information about the setting of the new good message folder option.
Kenny Pitt        2005-01-12  Outlook: General dialog template cleanup.
Kenny Pitt        2005-01-08  Since bsddb is the same as bsddb3 on any recent Python (2.3+), try using bsddb3 instead if we are unable to import bsddb.
Tony Meyer        2005-01-04  If we are reloading the options, optionsPathname will already be set, so if we are  a windows user using the default pathname, the object won't be reloaded.  Fix so a reload is always done.
Tony Meyer        2005-01-04  rcparser.py: Look for dialogs.h in this directory if it isn't with dialogs.rc.
Tony Meyer        2005-01-04  Add initial French and Spanish translations.
Tony Meyer        2005-01-03  Implement part of [ 753708 ] Support POP over SSL
Tony Meyer        2005-01-02  UserInterface.py: cgi.escape the configuration filename
Skip Montanaro    2005-01-02  tte.py: When running through the messages that haven't been kept for training, delete messages that score properly.
Tony Meyer        2004-12-29  Outlook: Report the last modified date in the "show clues" message.
Kenny Pitt        2004-12-24  New version numbering scheme.
Tony Meyer        2004-12-23  Outlook: Enlarge the Manager dialog and add a control to set the ham folder. 
Tony Meyer        2004-12-23  Provide constants for the persistent ham/spam/unsure stings for the messageinfo db.
Kenny Pitt        2004-12-23  Add a button on the Statistics tab to reset the Outlook statistics.  Also display the date when the statistics were last reset.
Tony Meyer        2004-12-22  Make Dibbler.py compatible with Python 2.2.1.
Tony Meyer        2004-12-22  FileCorpus.py: Don't use the strict keyword arg as it is deprecated.
Tony Meyer        2004-12-22  Add _() wrappers around appropriate strings in spambayes/ and scripts/.
Tony Meyer        2004-12-22  i18n.py: Add a function to load the ui.html file appropriate for the language.
Tony Meyer        2004-12-22  Merge the Outlook2000.oastats.Stats class and the spambayes.Stats.Stats class.
Tony Meyer        2004-12-22  Store a stats start date in the message database, so that we can 'reset' the statistics without removing the whole message database.
Tony Meyer        2004-12-22  Allow message.Messages to have their id specified on creation.  Also allow specification of the messageinfo_db.
Kenny Pitt        2004-12-21  sb_server: Fix a bug with the new style of checking the +OK on a RETR.
Tony Meyer        2004-12-20  Allow Outlook users to select their storage method in exactly the same way as other users can.
Tony Meyer        2004-12-20  Outlook: add a wrapper for the ZODB (FileStorage) storage class.
Tony Meyer        2004-12-20  Outlook: Remove some checks that no longer need to be done (that the messageinfo db has the  same length as the tokens db).
Tony Meyer        2004-12-17  message.py: Spit out a warning if the deprecated function is used.
Tony Meyer        2004-12-17  message.py: Change the deprecated function to work in Python 2.4.
Tony Meyer        2004-12-17  sb_imapfilter: Update extract_fetch_data to handle any number of literals/message numbers.
Kenny Pitt        2004-12-17  Outlook: Improve e-mail address formatting for fake Exchange headers so that it supports multiple addresses, some of which may be real Internet addresses.
Tony Meyer        2004-12-16  sb_imapfilter: compile re's and do this only once.
Tony Meyer        2004-12-16  sb_imapfilter: improve handing of extract_fetch_data.
Tony Meyer        2004-12-16  Outlook: Improve the faked up exchange headers that we generate if there are no Internet headers.
Kenny Pitt        2004-12-16  Outlook: Include Message-ID in fake Exchange headers.
Tony Meyer        2004-12-08  Improve test_storage.py and test_message.py.
Tony Meyer        2004-12-08  Add [ 848365 ] Remove subject annotations from message review page
Tony Meyer        2004-12-08  Add [ 1036970 ] Allow Outlook plugin to move ham to a designated folder
Tony Meyer        2004-12-07  Outlook: More detailed statistics in SpamBayes Manager.  These roughly match the updated statistics in the sb_server Web UI.
Tony Meyer        2004-12-06  Fix the regex that the auth digest used, and handle the auth digest responses tha IE 6.0 and Firefox 1.0 give.
Tony Meyer        2004-12-06  Fix [ 1078923 ] Unicode support incomplete
Tony Meyer        2004-12-06  Outlook: Use PR_SENDER_NAME rather than PR_DISPLAY_NAME_A for the faked-up "From" header.
Kenny Pitt        2004-12-04  Add notification sound support as per patch #858925.
Tony Meyer        2004-12-01  When doing "setup.py sdist" an MD5 checksum and the size of the created archive(s) is printed to stdout.
Tony Meyer        2004-11-29  sb_server: Messages that did not have the required \r?\n\r?\n separator would just pass through spambayes unproxied.  Now they are, as best as possible.
Tony Meyer        2004-11-29  Handle a message that does not have a proper separator in insert_exception_header.
Tony Meyer        2004-11-29  Change sb_server to use the centralised insert_exception_header code.
Tony Meyer        2004-11-29  Subject lines are not cgi.escape()d in the web interface, which might cause errors - fixed.
Tony Meyer        2004-11-26  Outlook: Stop using the deprecated access to the bayes database and use the manager.classifier_data directly.
Tony Meyer        2004-11-26  Outlook: Switch to using a spambayes.message.MessageInfo database rather than an Outlook specific one.
Tony Meyer        2004-11-26  Outlook: Save the current folder when doing a "delete as spam", because the message may not be in the folder it was when it was filtered, or it may not have been filtered, but we do really want to recover it to wherever it was last.
Tony Meyer        2004-11-26  Fix [ 1071319 ] Outlook plug in for IMAP boxes
Tony Meyer        2004-11-26  message.py: Handle loading an Outlook messageinfo database, and add a __len__ function to the messageinfo databases.
Tony Meyer        2004-11-26  message.py: The messageinfo db now needs messages to have a GetDBKey function to determine the key to store the message under.  For non-Outlook message classes, this is just the same as getId().
Tony Meyer        2004-11-24  Moved the cleanarch script to the utilities directory and added '.py' to the filename.
Tony Meyer        2004-11-23  Improve OE support code, mostly from [ 800671 ] Windows GUI for easy Outlook Express mailboxes training
Tony Meyer        2004-11-23  message.py: Change MessageInfoBase's methods so that recording & retrieving a message are not private methods and are more clearly named.
Tony Meyer        2004-11-23  message.py: Change so that the messageinfodb doesn't get created/opened on import, but rather through utility functions like those in spambayes.storage.
Tony Meyer        2004-11-23  message.py: Remove the asTokens method in favour of the existing tokenize function.
Tony Meyer        2004-11-23  message.py: Fix the include_evidence header to check for *H* and *S* explicitly rather than any  token starting with *.
Tony Meyer        2004-11-22  Add new storage types: CBDClassifier, ZODBClassifier, ZEOClassifier
Tony Meyer        2004-11-22  Add code to allow persistent_storage_name to not be expanded into an absolute path  with certain storage types (e.g. the SQL ones).
Tony Meyer        2004-11-22  sb_pop3dnd: Play nicer with win32 gui
Tony Meyer        2004-11-22  sb_pop3dnd: Don't use the deprecated 'strict' kwarg for email messages.
Tony Meyer        2004-11-22  sb_pop3dnd: Add appropriate state createworkers function & call.
Tony Meyer        2004-11-22  sb_pop3dnd: Modify to have the prepare/start/stop API that sb_server has.
Tony Meyer        2004-11-22  sb_filter: Remove the "experimental" marking in the docstring for the training functions.
Tony Meyer        2004-11-15  Fix a bug in sb_dbexpimp.py where merging into an existing dbm file might lose training data.
Tony Meyer        2004-11-15  sb_dbexpimp.py: Fail if the csv file doesn't exist that we are trying to import from rather than  keeping going, which made no sense.
Tony Meyer        2004-11-15  sb_dbexpimp.py: Stop bothering to remove the .dat and .dir files that dumbdbm  create (long time since they were supported), and remove the verbose flag, which  doesn't actually do anything.
Kenny Pitt        2004-11-12  Add a separate Statistics tab to make room for more detailed statistics.
Toby Dickenson    2004-11-11  Add a version of sb_bnfilter in C (for speed).
Tony Meyer        2004-11-11  The installer wasn't offered to install a startup items shortcut, so fix that.  This is a non-ideal patch, but appears to be the only way Inno will work.
Tony Meyer        2004-11-09  Implement [ 870524 ] Make the message-proxy timeout configurable
Tony Meyer        2004-11-09  Use email.message_from_string(text, _class) rather than our wrapper functions.
Tony Meyer        2004-11-09  Implement [ 940547 ] imapfilter interface available when using -l switch
Tony Meyer        2004-11-08  Outlook: Add two extra items to the "spam clues" for the message: last filtered score/class and if it has been trained.
Tony Meyer        2004-11-05  Add unittests for sb_pop3dnd.py
Tony Meyer        2004-11-05  sb_pop3dnd: remove use of the web interface
Tony Meyer        2004-11-05  sb_pop3dnd: fix bug in getHeaders where negation wouldn't work correctly
Tony Meyer        2004-11-05  sb_pop3dnd: fix loading of dynamic messages to correctly generate the headers, so that envelope works.
Tony Meyer        2004-11-05  sb_pop3dnd: change the fake email addresses to the same format as the notate_to option (i.e. @spambayes.invalid)
Tony Meyer        2004-11-05  sb_pop3dnd: improve the "about" message to include the docstring.
Tony Meyer        2004-11-05  sb_pop3dnd: add a dynamic stats message.
Tony Meyer        2004-11-05  sb_pop3dnd: improve the dynamic status message to include everything that would normally be on the web interface.
Tony Meyer        2004-11-05  sb_pop3dnd: add a "train as spam" folder, to separate out training and classifying as spam.
Tony Meyer        2004-11-05  sb_pop3dnd: use twisted.Application in the new style to avoid deprecation warnings.
Tony Meyer        2004-11-03  Add [ 1052816 ] I18N - mostly the patch from Hernan Martinez Foffani
Tony Meyer        2004-11-03  Fix [ 1022848 ] sb_dbexpimp.py crashes while importing into pickle file
Tony Meyer        2004-11-03  Fix [ 831864 ] sb_mboxtrain.py: flock vs. lockf
Tony Meyer        2004-11-03  Fix [ 922063 ] Intermittent sb_filter.py failure with URL pickle
Tony Meyer        2004-11-03  Outlook: Also add an "X-Exchange-Delivery-Time" header to the faked up Exchange headers.
Tony Meyer        2004-11-02  Improve the web interface statistics
Tony Meyer        2004-10-29  If possible, use the builtin (faster, C-implemented) set class, falling back to sets.Set, then back to our compatsets.Set
Tony Meyer        2004-10-28  Add [ 715248 ] Pickle classifier should save to a temp file first
Tony Meyer        2004-10-28  Add [ 938992 ] Allow longer background filtering delays
Tony Meyer        2004-10-27  Add a variety of improvements to sb_culler.py contributed by Andrew Dalke
Tony Meyer        2004-10-27  Update sb_culler.py to match current open_storage() usage
Tony Meyer        2004-10-21  Fix [ 1051081 ] uncaught socket timeoutexception slurping URLs
Tony Meyer        2004-10-20  Outlook: Let the statistics have a variable number of decimal places for the percentages (1  by default).
Tony Meyer        2004-10-18  Make msgs.Msg objects pickleable
Tony Meyer        2004-10-18  Copy Skip's -o command line option (available in all the regular scripts) to timcv.py.
Tony Meyer        2004-10-18  TestDriver: If show_histograms was False, then the global ham/spam histogram never had the stats computed, but this gets used later, so the script would die with an AtrributeError. Fix that.
Tony Meyer        2004-10-15  Outlook: Add persistent statistics
Tony Meyer        2004-10-13  Implement [ 1039057 ] Diffs for IMAP login problems...
Tony Meyer        2004-10-13  Add Classifier.use_bigrams option to the Advanced options page for sb_server and imapfilter.
Tony Meyer        2004-10-13  Fix mySQL storage option for the case where the server does not support rollbacks.
Tony Meyer        2004-10-07  Add patch from Graham Ashton to allow users of sb_upload.py to not just upload, but also train.
Sjoerd Mullender  2004-10-02  imapfilter: Quote the search string that tries to find the message again that was just saved.
Kenny Pitt        2004-10-02  Outlook: Change "Delete as Spam" button to "Spam" and "Recover from Spam" button to "Not Spam".
Tony Meyer        2004-10-01  Instead of treating notate_to just like notate_subject, we convert the classification into an email address.
Tony Meyer        2004-09-30  Implement [ 940643 ] Add ham_folder option
Tony Meyer        2004-09-30  Fix [ 903905 ] IMAP Configuration Error
Tony Meyer        2004-09-29  Fix [ 1036601 ] typo on advanced config web page
Tony Meyer        2004-09-15  sb_upload: Clarify docstring so that it's more clear what this script does. The -n / --null command line option didn't actually do anything; change it so that it does.
Sjoerd Mullender  2004-08-20  imapfilter: Fix the regular expression to match the Message-ID header by stopping on newline.
Skip Montanaro    2004-08-18  tte.py: Seems better to try and alternate ham/spam scoring instead of scoring all the hams in a batch and all the spams.
Kenny Pitt        2004-08-11  First pass at moving help text out of the Python source and into the ui.html file.
Tony Meyer        2004-08-10  Warn people using spam_cutoff/ham_cutoff values of 0.5 or lower/higher.  Also warn them if the ham_cutoff is higher than the spam_cutoff.
Tony Meyer        2004-08-09  Change [Classifier] x-use_bigrams to a normal, not experimental option.
Tony Meyer        2004-08-06  imapfilter: isinstance check is wrong, so will never be true, so literals in the folder list will never be handled correctly.
Tony Meyer        2004-08-05  Remove all traces of the experimental imbalance option.
Tony Meyer        2004-08-05  Remove support code for two deprecated options: [Tokenizer] x-extract_dow and [Tokenizer] x-generate_time_buckets. 
Tony Meyer        2004-08-04  Add basic unit tests for imapfilter.
Tony Meyer        2004-08-04  Factor out X-Spambayes-Exception header code to message.py, and get imapfilter to use this.
Tony Meyer        2004-08-04  imapfilter: Keep going if just one folder is bad (training/filtering).
Tony Meyer        2004-08-04  imapfilter: Switch to using the Message-ID header id as our id, unless one can't be found, in which case we use our one.
Tony Meyer        2004-08-04  imapfilter: General sb_imapfilter tidy-up.
Tony Meyer        2004-08-04  imapfilter: Remove the layers of attempting to fetch.
Tony Meyer        2004-08-04  imapfilter: Change the way the get_substance method works (renaming it in the process).
Tony Meyer        2004-08-04  imapfilter: Be less restrictive about the error returned when logging in fails.
Sjoerd Mullender  2004-08-03  message.py: Don't round-trip the message being tokenized to a string.
Tony Meyer        2004-08-03  Implement [ 909088 ] remove STLS pop3 capability
Skip Montanaro    2004-07-26  tte.py: Generalize the spam:ham ratio flag to include the ham value instead of having it be implicitly 1.
Skip Montanaro    2004-07-25  tte.py: Add --ratio=N flag to allow the user to adjust the ratio of spam to ham.
Tony Meyer        2004-07-23  For proxy handler for version checking, the proxy port needs to be an integer, not a string.
Tony Meyer        2004-07-22  pop3proxy_tray: Do what the Outlook plug-in does and give the user the "string" version of the version number.
Tony Meyer        2004-07-22  Fix proxy handler for checking for latest version when username/password isn't given.  Fix for Python 2.4
Kenny Pitt        2004-07-22  Improve display names for "allow_remote_connections" options to be less confusing.
Tony Meyer        2004-07-19  Fix [ 990700 ] Changes to asyncore in Python 2.4 break ServerLineReader
Kenny Pitt        2004-07-17  Add an "Empty Spam Folder" option to the plug-in dropdown menu. (Patch [831941])
Kenny Pitt        2004-07-17  Fix [941639] and [986353].  Use a non-standard extension for our py2exe created zip to get around Windows extensions that automatically expand zip files.
Tony Meyer        2004-07-16  Fix [ 943852 ] Incorrect sort order for Score column
Tony Meyer        2004-07-16  Implemented [ 887984 ] Remove "Save and Shutdown" button when running as service
Tony Meyer        2004-07-14  Fix [ 790757 ] signal handler created with wrong # of args
Tony Meyer        2004-07-14  Fix [ 944109 ] notate_to/subject option valid values should be dynamic
Tony Meyer        2004-07-14  Fix [ 959937 ] "Invalid server" message not always correct
Tony Meyer        2004-07-14  When slurping, use a lower timeout so things work faster (with Python >=2.3)
Tony Meyer        2004-07-14  setPayload() in message.py doesn't work in Python 2.4, so avoid.  Refactor Corpus.py and FileCorpus.py to allow this.
Skip Montanaro    2004-07-10  tte.py: 2.3 compatibility: add reversed() function
Skip Montanaro    2004-07-10  tte.py: When deciding if messages are misses or not, consider whether they have Message-Id or Subject headers.
Tony Meyer        2004-07-09  Using -u with sb_server had been broken.  Fix this.
Tony Meyer        2004-07-09  Update test_storage.py test to reflect (current) correct way to call open_storage. Fixes part of [ 981970 ] tests failing.
Tony Meyer        2004-07-04  Add a time stamp to the Outlook plug-in logs.
Tony Meyer        2004-07-04  Fix [ 933473 ] Unnecessary spam folder hook.
Neil Schemenauer  2004-06-30  New script, hammie2cdb.py, that converts hammie databases into cdb databases (usable by CdbClassifier).
Skip Montanaro    2004-06-29  tte.py: Worm around the extremely rare case during verbose mode where the message sneaks through without either a message-id or a subject.
Skip Montanaro    2004-06-26  New script, postfixproxy.py, a first cut proxy filter for use with PostFix 2.1's content filter stuff.
Skip Montanaro    2004-06-26  hammie: Rename filter() to score_and_filter() and return both the spamprob and the modified message.
Tony Meyer        2004-06-11  Add the "sb_culler.py" script from the SB wiki by Andrew Dalke.
Tony Meyer        2004-06-01  Add fixes from [ 962693 ] mozilla/thunderbird/netscape profile dir detection
Skip Montanaro    2004-05-26  New file: pycksum.py - A fuzzy checksum program similar based on a message posted a long time ago by Justin Mason of the SpamAssassin group.
Tony Meyer        2004-05-24  imapfilter: With the verbose output, put the final counts on a line all by themselves.
Tony Meyer        2004-05-16  imapfilter: Sometimes we can't fetch a message, so we can't add the exception header.  Don't crash, just warn and continue.
Toby Dickenson    2004-05-06  Add a C implementation of sb_bnfilter. Tweak the Python version to minimise differences between the two. Enable psyco in sb_bnserver.

Release 1.0 Final
=================

(no changes from 1.0rc2)

Release 1.0 Release Candidate 2
===============================

Tony Meyer        2004-06-10  Install license with binaries.
Mark Hammond      2004-06-01  Fix Tony's fix for [ 943397 ] Cannot choose more than one Inbox folder to filter
Tony Meyer        2004-06-02  Fix [ 961713 ] server error when trying to change Statistics Options
Skip Montanaro    2004-05-31  Compatcsv: Abandon regexes as bad way to parse csv file - add simple unit test as well
Skip Montanaro    2004-05-31  sb_dbexpimp.py: handle case of importing the old object craft csv module.
Skip Montanaro    2004-05-22  sb_dbexpimp.py: Add a fake UnicodeDecodeError for Python 2.2 compatibility.
Skip Montanaro    2004-05-22  Compatcsv: correct a list chomping bug (forgot a slicing ":") and use .readline() instead of .next() for Python 2.2 compatibility
Tony Meyer        2004-05-18  Fix [ 955442 ] default_bayes_customize.ini not handled right
Tony Meyer        2004-05-14  message.py: If we trigger the TypeError problem, try to do our best to put the message together anyway.
Tony Meyer        2004-05-14  Handle people using a storage type that isn't pickle/dbm (like one of the sql ones).
Tony Meyer        2004-05-13  If a user tried to send a bug report before entering in any servers to proxy, this would generate an IndexError.  Fix that.
Tony Meyer        2004-05-12  Fix [ 943397 ] Cannot choose more than one Inbox folder to filter

Release 1.0 Release Candidate 1
===============================

Skip Montanaro    2004-05-05  sb_filter, sb_bnfilter use new mboxutils as_string().
Skip Montanaro    2004-05-04  mboxutils: Added as_string() - a function which attempts to work around problems flatten()-ing some Message objects in versions of the email package < 2.5.5.
Mark Hammond      2004-05-04  Fix [ 918157 ] "Could not watch the specified folders". msgstore.IsReceiveFolder() would fail on an exchange server.
Tony Meyer        2004-05-03  Temporary fix for [ 941596 ] sb_imapfilter.py not adding headers / moving messages
Tony Meyer        2004-05-03  imapfilter: catch any exceptions, not just email.Errors
Tony Meyer        2004-05-03  NotesFilter: Incorrect (old?) function name for opening a storage object.
Mark Hammond      2004-04-29  Outlook: Change the default pushbutton in the "filter now" dialog to be the start button, and make ESC work as cancel.
Skip Montanaro    2004-04-28  tte.py: add -R/--reverse flag to iterate over the mailboxes in reverse
Tony Meyer        2004-04-25  If the move_trained_[ham|spam]_to_folder options were used, this would wipe out the SpamBayes headers.  Fix that.
Tony Meyer        2004-04-25  Update message.py for the newer way that the persistent_use_database option works.
Tony Meyer        2004-04-23  Fix [ 940155 ] Data Folder location

Release 1.0 Beta 1
==================

Kenny Pitt        2004-04-07  Fix some problems with the [851785] fix
Toby Dickenson    2004-03-26  New script: sb_bnfilter - like sb_filter but without the startup overhead
Tony Meyer        2004-03-24  When messages expired from the sb_server caches during a USER check (rather than on launch) they would be untrained.  This is not right at all, and so was fixed.
Tony Meyer        2004-03-23  Fix a subtle bug where if one option was selected for notate_to/subject the option would be presented with radio buttons not checkboxes (so only one, and never zero or 2/3 options could be chosen).
Kenny Pitt        2004-03-18  Outlook: Don't record classification in stats unless all_actions is true so that rescoring messages doesn't skew the statistics counters.
Skip Montanaro    2004-03-16  Change sb_dbexpimp.py to use csv as interchange format.
Tony Meyer        2004-03-16  Add [ 797579 ] Disable connections to POP3 and SMTP from remote hosts
Tony Meyer        2004-03-16  Fix [851785] Pop3proxy stores Ham/Spam/Unsure subject line in message cache
Tony Meyer        2004-03-16  Fix [ 906581 ] Assertion failed in search subject
Tony Meyer        2004-03-16  Add a note warning about [915466] Sorting review page loses classifications.
Skip Montanaro    2004-03-16  Add a verbose flag to tte.py
Mark Hammond      2004-03-07  Outlook: Catch all MAPI errors fetching the HTML for a message, and remove the warning about old win32all versions.
Mark Hammond      2004-03-04  Outlook: set pythoncom.frozen along with sys.frozen in our nasty registration hacks
Mark Hammond      2004-02-27  Outlook: Handle the fact that GetParent() may raise an exception, in which case we aren't able to show the item in the tree.
Mark Hammond      2004-02-27  Outlook: GetParent() catches MAPI errors and raises a MsgStoreException
Mark Hammond      2004-02-27  Outlook: Improve speed by calling .SetColumns() before .Restrict()
Skip Montanaro    2004-02-26  Add a -c flag to tte.py
Tony Meyer        2004-02-22  Simplify the auto bug reports via the web interface a bit, and get the user to enter a subject.
Tony Meyer        2004-02-17  Add [ 848311 ] sb_imapfilter.py obeys launch_browser
Tony Meyer        2004-02-17  The service was built, but not included in the installer for 1.0a9.  Fix that.
Tony Meyer        2004-02-16  Fix the line wrapping in autogenerated bug reports via the web interface.
Tony Meyer        2004-02-16  Fix a NameError in smtpproxy.py
Tony Meyer        2004-02-16  imapfilter: Use BODY.PEEK[] instead of RFC822.PEEK.
Tony Meyer        2004-02-16  imapfilter: Report time taken a little less pedantically.
Tony Meyer        2004-02-16  Fix [ 737967 ] Malformed messages break pop3proxy (et al)
Tony Meyer        2004-02-15  Fix half of [ 896366 ] Crashes in the web interface.
Skip Montanaro    2004-02-13  tte.py: record time (in seconds) to execute each round and count the number of leftover hams and spams at the end
Skip Montanaro    2004-02-13  Collect all potential MTA complaints, not just sendmail's "may be forged" (from Tim Peters).
Tony Meyer        2004-02-13  Fix [ 895606 ] 1.0a9 proxy raises an X-Spambayes-Exception
Skip Montanaro    2004-02-12  Big speedup when using sb_filter.py to process an entire mailbox.  Instead of opening the database for each filter operation, cache the open db object and reuse as long as its mode is the same as the last time we used it.
Kenny Pitt        2004-02-11  Fix typo in sb_dbexpimp.py usage statement.

Release 1.0 Alpha 9
===================

Skip Montanaro    2004-02-07  New script - tte.py: Train to exhaustion based upon my understanding of the technique as described in Gary Robinson's blog.
Tony Meyer        2004-02-05  Web interface: added a third configuration page, which dynamically has all the experimental options (not the deprecated ones).
Tony Meyer        2004-02-05  Make all the scripts consistent in their command line setting of database type/name.  -d is dbm, -p is pickle.  Also setup things nicer for mysql and pgsql.
Tony Meyer        2004-02-05  If the allowed values for an option is a tuple of values, then the type is correct if the value is one of those types. 
Tony Meyer        2004-02-05  Outlook: If the special folders can't be found, then report this to the user.
Tony Meyer        2004-02-05  ProxyUI: Do the save one line earlier, which might mean that if the user has closed the browser, a db error is avoided.
Tony Meyer        2004-02-05  imapfilter has been adding two mailid headers, so stop that.
Tony Meyer        2004-02-05  Fix [ 890645 ] imapfilter: "ValueError: year out of range"
Skip Montanaro    2004-01-30  Recognize "abbreviated" URLs of the form www.xyz.com or ftp.xyz.com as http://www.xyz.com and ftp://ftp.xyz.com, respectively.  This gets rid of some fairly common "skip:w NNN" tokens. Enabled by the new tokenizer option, x-fancy_url_recognition.
Skip Montanaro    2004-01-29  sb_mboxtrain.py: preserve modtimes in Maildir & MH mailboxes
Tony Meyer        2004-01-27  Fix [ 870799 ] imap trying to fetch invalid message UID
Tony Meyer        2004-01-27  Fix [ 881427 ] sb_mboxtrain.py requires -d or -D
Tony Meyer        2004-01-27  Add options to ImapUI that the ProxyUI has, and also belong there.
Kenny Pitt        2004-01-22  Outlook: Fix confusing error log message.  Timer delay values are configured in seconds, not milliseconds.
Skip Montanaro    2004-01-21  added findbest.py to contrib/
Skip Montanaro    2004-01-15  loosecksum.py: allow multiple mailboxes on the command line, not just a single message on stdin or a file containing one message
Skip Montanaro    2004-01-15  Add -o option to allow users to set arbitrary global options from the command line to dbexpimp, imapfilter, mboxtrain, notesfilter, pop3dnd, server, upload, xmlrpcserver.
Tony Meyer        2004-01-13  Fix [ 874784 ] Error in onReview code
Skip Montanaro    2004-01-13  UserInterface: Split digest auth info properly.  Simple split-on-comma fails if the uri contains commas.
Barry A. Warsaw   2004-01-13  imapfilter: Catch and ignore MessageParseErrors when parsing the data['RFC822'] text.
Tony Meyer        2004-01-12  Improve the messageinfo database so that more than two attributes can be saved (it's still backwards compatible with the old type).
Tony Meyer        2004-01-12  Path/file options are no longer relative to the current working directory, they are relative to the last configuration file loaded.
Tony Meyer        2004-01-12  pop3dnd: Store the IMAP flags.
Tony Meyer        2004-01-12  pop3dnd: Fix an incorrectly checked flag (typo).
Anthony Baxter    2004-01-12  New options ham_discard_level and spam_discard_level. These make the interface default to discard hams/spams in the training interface.
Tony Meyer        2004-01-11  mkgraph.py: Add a docstring.
Tony Meyer        2004-01-11  mkgraph.py: Add -f command line arg to pass a filename rather than reading from stdin (which is still the default)
Tony Meyer        2004-01-11  mkgraph.py: Add a training_is_ham line to the error graph which shows the percentage of training data that is ham (i.e. shows the imbalance).
Tony Meyer        2004-01-11  mkgraph.py: Modify the outputing so that it can be in different formats for those of us without plotmtv.  The -c command line option outputs all the lines in the same set of rows, rather than in their own set as is the default.  The -s arg specifies the separator for this sort of output (defaults to a comma, so that csv files are output).
Tony Meyer        2004-01-11  incremental.py: Add a docstring and the ability to print it with -h or --help to incremental.py
Tony Meyer        2004-01-11  regimes.py: Add a docstring that outlines the various regimes in hopefully easy to understand terms. Print this out if regimes.py is executed.
Tony Meyer        2004-01-11  regimes.py: Add a new regime - balanced_corrected.
Tony Meyer        2004-01-08  Fix [ 805852 ] need python-dev package on Debian
Skip Montanaro    2004-01-08  table.py: space the table out a little more.
Skip Montanaro    2004-01-07  mkreversemap.py: New script which generates a pickle file mapping features to mailbox files and message-id's.  Use with extractmessages.py.
Skip Montanaro    2004-01-07  extractmessages.py: New script; use with mkreversemap.py to identify messages in your training database which contain interesting tokens.
Tony Meyer        2004-01-07  Fix [ 872044 ] HTTP review page date problems.
Skip Montanaro    2004-01-06  Add experimental option and code to pick out some semantic bits from URLs
Tony Meyer        2004-01-05  Add extra utility functions to oe_mailbox for dealing with Outlook Express.
Tony Meyer        2004-01-05  Have autoconfigure confirm that configuration has occured.
Tony Meyer        2004-01-05  Do better 'is installed' checks in autoconfigure.
Adam Walker       2004-01-05  Start SMTP proxy in a trainable state.
Tony Meyer        2003-01-02  UserInterface: Fix import error reported.
Richie Hindle     2004-01-01  Default to twenty search results on web interface rather than just one.
Richie Hindle     2004-01-01  Made the search form do a GET rather than a POST.
Richie Hindle     2004-01-01  Fix for 842984: If webbrowser.open_new() fails, print a message saying "Please point your web browser at http://localhost:8880/" rather than bombing out.
Richie Hindle     2004-01-01  New script: utilities/hammer.py: Hammers the core SpamBayes code, repeatedly training and classifying using faked-up messages.
Tony Meyer        2003-12-31  pop3dnd: Fix fetching an envelope.
Tony Meyer        2003-12-31  pop3dnd: Handle storing no flags.
Tony Meyer        2003-12-31  pop3dnd: Update the RETR'ing of messages to reflect what sb_server currently does.
Tony Meyer        2003-12-31  pop3dnd: Clean out some cruft that isn't necessary with the latest version of twisted (1.1)
Tony Meyer        2003-12-31  pop3dnd: Add two new Message classes, one for messages that are stored in memory, and one for messages that are re-generated each time the message is loaded.
Tony Meyer        2003-12-31  pop3dnd: Start our UIDs at 1, not 0, because Eudora likes this more.
Tony Meyer        2003-12-31  pop3dnd: Don't override the imported name "message".
Tony Meyer        2003-12-31  pop3dnd: Add a new folder - INBOX - this holds any messages from SpamBayes to the user. (Having INBOX as an alias for Spam wasn't working well, and being able to communicate within the confines of the mailer is nice, too).
Tony Meyer        2003-12-31  pop3dnd: Don't let the user set so much via the command line.  Use a config file, you lazy person.
Tony Meyer        2003-12-31  pop3proxy_tray: When we stopped sb_server and then restarted, we didn't init the state, so it wouldn't work.  Fix that.
Tony Meyer        2003-12-31  Web interface: As Richie pointed out, the status message was only updated when the state was recreated.  Fix this.
Tony Meyer        2003-12-31  Web interface: Output plurals correctly in stats information.
Tony Meyer        2003-12-31  We printed out false positive numbers in the false negatives section, and vice versa.  Fix.
Tony Meyer        2003-12-30  IMAP interface: Quote folder names when displaying them - otherwise if the folder names contained certain characters it could result in bad html (if the name was ">foo", for example).
Tony Meyer        2003-12-29  Web interface: Improve the 'online' help message for the review page, and add messages for the stats and home pages.
Tim Peters        2003-12-29  Many improvements to the mksets.py testtools script.
Tim Peters        2003-12-28  sort+group.py: Sort msgs by full-precision timestamp (not just by day).  Normalize Received time to UTC first.  Use email.Utils to parse dates instead of hand-rolling our own parser
Tim Peters        2003-12-28  sort+group.py: Preserve files' extensions (if any) during renaming.
Tim Peters        2003-12-28  Outlook: export.py - the -n option now gives the number of Set subdirectories desired, instead of a number of msgs per Set subdir "to shoot for".
Tim Peters        2003-12-28  Added a new -t option to rebal.py, may have broken -s and -r options.
Tim Peters        2003-12-26  Many improvements to the rebal.py testtools script.
Tim Peters        2003-12-26  Many improvements to the export.py script for Outlook.
Skip Montanaro    2003-12-24  storage: make state key a manifest constant
Mark Hammond      2003-12-23  Along with checking Outlook isn't running, check Outlook's mail transport also isn't running, and that an existing sb_server isn't.
Mark Hammond      2003-12-23  Fix uninstall problem - uninstall should be 100% clean, assuming Outlook isn't running.
Mark Hammond      2003-12-23  Tray app: Binary version failed to check for most recent version.
Skip Montanaro    2003-12-23  Sendmail annotates the Received: header with "(may be forged)" if it thinks the sender is forging its identity.  Generate a token for this, if we are mining received headers.
Tony Meyer        2003-12-22  Move OE specific stuff out from UserInterface.py to oe_mailbox.py.
Mark Hammond      2003-12-22  Outlook: Default to background filtering being on for new versions.
Tony Meyer        2003-12-22  Web interface: A beginning at a more userfriendly interface to the testing setup.
Mark Hammond      2003-12-22  Outlook: When a frozen executable, addin.py becomes a mini-installer EXE for the DLL.
Mark Hammond      2003-12-21  Outlook: DWhen doing a "batch train" (eg, selecting multiple messages and saying "Delete as" or "Recover from",) the DB was saved in between each and every message.  Now only saved at the end (which was always the intent)
Mark Hammond      2003-12-21  Outlook: DAs part of checking our configuration is invalid, make sure the user hasn't set us up such that either Spam/Unsure folders isn't also being watched for new messages
Mark Hammond      2003-12-21  Outlook: If the user attempts to close the Manager dialog while there is a problem preventing us being enabled, confirm they really want to close it 
Mark Hammond      2003-12-20  dump_props.py: Add -c option, which writes output to the Windows clipboard.
Mark Hammond      2003-12-20  Outlook: Include the foldername in many messages, so help track down wierd bugs from user logs.  Say what we are watching a folder for.
Mark Hammond      2003-12-20  Outlook: Fix [ 860410 ] SpamBayes allows top-level folders to be selected, and also prevent a single-select dialog from closing with no selection
Skip Montanaro    2003-12-20  Tokenizer: Solved the "backwards breakdown" problem with ip addresses in Received: headers.
Skip Montanaro    2003-12-20  Tokenizer: Tightened up recognition of hostnames and accepted bracketed or parenthesized ip addresses without requiring a leading space.
Mark Hammond      2003-12-19  Outlook: Remove handling of E_OBJECT_CHANGED exception, as it simply did not work.
Mark Hammond      2003-12-19  Fix [ 803798 ] MAPI_E_OBJECT_CHANGED error saving spam score, which is a dupe of [787676], which was incorrectly marked as fixed
Mark Hammond      2003-12-19  Outlook: Don't record in the training database unless we are successful in the filter - otherwise future attempts to filter will get all screwed up, as it will think it already was
Mark Hammond      2003-12-19  Outlook: Move some of our init code from OnConnection to OnStartupComplete
Mark Hammond      2003-12-19  Outlook: Try and tone down the toolbar message in the log to prevent people reporting it as a bug
Mark Hammond      2003-12-19  Outlook: Handle situations where Outlook starts up in a confused state, which then confused us.
Mark Hammond      2003-12-19  Outlook: Ask if you want the slow, non-filter tests run, and add E_OBJECT_CHANGED tests, as per [ 803798 ] MAPI_E_OBJECT_CHANGED error saving spam score
Tony Meyer        2003-12-18  Bring pspam into the modern SpamBayes world.
Mark Hammond      2003-12-18  Outlook: When the 'New Folder' button was used to create a folder, that folder was not used when you closed the dialog, even though it was selected.
Mark Hammond      2003-12-17  Tray app: Better icons and icon loading code.
Tony Meyer        2003-12-17  Add the basis of a new experimental (and highly debatable) option to 'slurp' URLs.
Tim Peters        2003-12-17  Implemented the intended "tiling" version of x-use_bigrams.
Tony Meyer        2003-12-16  Option names are always case insensitive, no matter what.
Tony Meyer        2003-12-16  Fix a bug in the web interface where the probability would be incorrectly calculated on 'show clues'.
Tony Meyer        2003-12-16  New experimental option: x-use_bigrams.
Skip Montanaro    2003-12-16  mboxutils: This change generalizes the DirOfTxtFileMailbox class to assume all non-directory files contain a single message and to recursively descend into subdirectories of the argument directory.
Tony Meyer        2003-12-15  Add a warning as a temporary solution for Python bug #845560.
Tony Meyer        2003-12-15  Add the missing code for the Habeas headers tokenizing (and deprecate).
Mark Hammond      2003-12-15  Fix [ 833439 ] default_bayes_customize.ini is confusing.
Mark Hammond      2003-12-14  Move the option loading code to a function, then call this function as the module loads.
Mark Hammond      2003-12-14  test_programs: When "calling" URLs, check the output for tracebacks, check the exit code of processes we spawn, and add test for "[ 859215 ] "Restore Defaults" causes assertion error at exit".
Tim Peters        2003-12-14  Removed support code for the defunct experimental_ham_spam_imbalance_adjustment option
Mark Hammond      2003-12-14  Fix [ 856628 ] reload(Options) fails in windows binary
Mark Hammond      2003-12-14  Fix [ 859215 ] "Restore Defaults" causes assertion error at exit.
Tony Meyer        2003-12-14  ImapUI: When logging in was done by the UI (to show available folders) we assigned the imap_session object to the wrong name
Skip Montanaro    2003-12-10  Loosen constraints on HEADER_VALUE regular expression.
Skip Montanaro    2003-12-10  Add ability for "x-" options (deprecated, or experimental).
Mark Hammond      2003-12-10  Outlook: Try and add the Spam field to the 'Unsure' folder in the same way we do for the Spam and watch folders.
Mark Hammond      2003-12-10  Fix [ 856141 ] Spam field not added to unsure or empty folders
Mark Hammond      2003-12-08  Outlook: Add/Fix a number of 'unicode file' related comments.
Mark Hammond      2003-12-08  Outlook: Allow multiple manager objects to work in the same process (but not at the same time):
Mark Hammond      2003-12-08  Outlook: A number of changes to better support us existing in the 'COM Addins' list when running the binary version
Tony Meyer        2003-12-04  Tray app: Change the default (double-click) behaviour of the tray to "review messages" rather than "display information".
Tony Meyer        2003-12-04  Tray app: use SetDefaultItem (so the default action is in bold in the menu).
Mark Hammond      2003-12-03  For the unittest scritps avoid sys.path munging.
Mark Hammond      2003-12-03  Add new test_programs unittest script and support file for unittest scripts.
Mark Hammond      2003-12-02  sb_server was ignoring command-line options; fix.
Richie Hindle     2003-11-27  Sjoerd's improved version of patch 831388.
Neale Pickett     2003-11-27  sb_filter now prints each message only once, not once per argument :)
Tony Meyer        2003-11-26  sb_dbexpimp.py: Import/Export data as utf-8.
Richie Hindle     2003-11-26  UserInterface.py More robust code for parsing score headers - copes with the presence of logarithms.
Richie Hindle     2003-11-26  UserInterface.py: More robust code for parsing evidence headers.  Copes with ';' and ': ' being part of a clue.
Richie Hindle     2003-11-26  Patch [ 831388 ]: Make message.py respect the header_score_digits option.
Richie Hindle     2003-11-26  Made sb_filter obey the notate_to and notate_subject options.
Tony Meyer        2003-11-26  As we now use whichdb to figure out what type of file the db is, if we were using windows and python 2.2 we would try and use dbhash instead of db3hash, which is a Bad Thing. Fix this.
Tony Meyer        2003-11-26  message.py: Encode words in the evidence header as utf-8 if they are unicode.
Barry A. Warsaw   2003-11-25  sb_xmlrpcserver.py: Make sure that the socket being bound is reusable.
Barry A. Warsaw   2003-11-25  Change XMLHammie.score() so that the float score is returned directly instead of trying to be wrapped in a Binary object.
Barry A. Warsaw   2003-11-25  New script: sb_evoscore.py - A shim script between sb_xmlrpcserver.py and Ximian Evolution.
Skip Montanaro    2003-11-25  Added a makefile to the testtools directory to make using timcv easier.
Neale Pickett     2003-11-18  Cleanup sb_filter and sb_mboxtrain.
Richie Hindle     2003-11-16  Patch [ 842464 ] Correct installation instructions from "setup.py install" to "python setup.py install"
Skip Montanaro    2003-11-13  sb_filter: add -o/--option command line arg that allows user to set any options value from the command line
Skip Montanaro    2003-11-13  OptionsClass: Add set_from_cmdline()
Skip Montanaro    2003-11-13  sb_filter: Allow multiple types of mailboxes to be processed using mboxutils.getmbox. If any mailbox files are given on the command line, the output is always a Unix-style mailbox containing From_ lines.
Richie Hindle     2003-11-11  notesfilter: The header_x_string options now live in the Headers section, not the Hammie section.
Richie Hindle     2003-11-07  Fixed an infinite loop when you break the browser connection to sb_server when sb_server is busy training.
Anthony Baxter    2003-11-05  Spell-checked all the HTML and txt files <wink>
Tony Meyer        2003-10-30  Implement [ 827138 ] Can't display clues/tokens/source for a trained message
Richie Hindle     2003-10-15  Increased the auth-digest login timeout from one minute to twenty.
Neale Pickett     2003-10-15  Modified muttrc and spambayes.el that actually work with what's being shipped :)
Neale Pickett     2003-10-15  Expanded documentation of sb_filter.py
Skip Montanaro    2003-10-15  which_database: fix bug in dbhash/bsddb[3] distinction and avoid overriding str
Skip Montanaro    2003-10-15  which_database: need to call os.path.expanduser() since paths like ~/hammie.db are valid in the options file
Mark Hammond      2003-10-10  It is no longer necessary to pre-load our default message store, and doing so caused us to fail if this default store was in offline mode.
Tony Meyer        2003-10-08  When training via the web interface record the training in the messageinfo db.
Tony Meyer        2003-10-07  Fix [ 818871 ] sb_server.py calls undefined variable
Tony Meyer        2003-10-06  Add Tim's fix for the stats to the web interface stats as well.  i.e. round the percentages, don't truncate them.
Tony Meyer        2003-10-06  imapfilter: When we mark a message as deleted, mark it as read (seen) as well.
Richie Hindle     2003-10-04  Fix the help icon to look like the rest.
Tony Meyer        2003-10-03  If sb_imapfilter.py is run without any switches, just serve the web interface (but don't launch a browser).
Tim Peters        2003-10-03  Outlook: Stop spam and unsure messages being double-counted in the stats.
Tony Meyer        2003-10-02  Fix a bug where messages wouldn't be trained via the web interface although no error would be reported (introduced after the previous release).
Tony Meyer        2003-10-02  Provide a partially filled-in bug report message via the web interface.
Tim Peters        2003-10-01  Round (not truncate) the stats information in the Outlook plugin.
Tony Meyer        2003-09-30  Improve autoconfigure script to find the location of various config files.
Tony Meyer        2003-09-30  Add basic statistics information to the web interface.
Tony Meyer        2003-09-29  Add a basic help system to the web interface.
Tony Meyer        2003-09-29  Add warning information to the web interface, for example if the user has imbalanced training, or not much training.
Mark Hammond      2003-09-29  Don't start the pop3proxy service if a proxy is already running.
Mark Hammond      2003-09-29  Outlook: Add slightly better stats, and a better framework to extend.
Skip Montanaro    2003-09-26  Dump TRAINED_HDR global.  Reference options[...] instead.
Mark Hammond      2003-09-25  Add patch [ 809008 ] safe start/stop and exclusive execution on windows
Tony Meyer        2003-09-24  sb_filter.py: If the -n switch was before the -d/-p switch, then the name wouldn't be used. This is rather unintuitive, so fix this so that the -d/-p name is used wherever the -n switch is.
Adam Walker       2003-09-24  pop3proxy_tray: Check if the web interface port can be bound as a simple test of if the proxy is running.
Tony Meyer        2003-09-20  smtpproxy is now only a module, not a script.  Use sb_server instead.
Tony Meyer        2003-09-20  Consolidate some of the many message classes - in particular Corpus.Message is removed in favour of message.Message
Tony Meyer        2003-09-20  Improve the 'Find Message' query on the front page of the web UI.
Tony Meyer        2003-09-20  Add an advanced word query to the web UI.
Tony Meyer        2003-09-20  Make the review messages page on the web UI more customizable.

Release 1.0 Alpha 8
===================

There was no Alpha Release 8.

Release 1.0 Alpha 7
===================

Skip Montanaro	  2003-10-28  Determine dbm format from the file if it already exists
Tony Meyer        2003-10-09  An old-style option was left in hammiebulk; fix this.
Tony Meyer        2003-10-08  If the (stats) db uses a pickle, then use a pickle for the messageinfo db as well.
Tony Meyer        2003-10-08  Try and close the db when we are no longer using it.
Tony Meyer        2003-10-08  Ensure that we store the messageinfo database when changes are made.
Tony Meyer        2003-10-07  Fix [ 818552 ] Exchange 2000 IMAPserver & imaplib.error: APPEND command er
Tony Meyer        2003-10-06  Trivial fix for IMAP over SSL being offered when it is available.
Tony Meyer        2003-10-03  Fix [ 810342 ] sb_smtpproxy does not work with smtplib.SMTP.sendmail()
Tony Meyer        2003-10-03  Fix [ spambayes-Bugs-816400 ] Crash because of bad date.
Sjoerd Mullender  2003-10-02  imapfilter: if problems occur parsing the date, just use the current date/time.
Tony Meyer        2003-09-30  Fix [ 814322 ] AttributeError: hdrtxt
Tony Meyer        2003-09-29  smtpproxy: If we successfully trained a message from the pop3proxy cache or IMAP server, we still said that we couldn't find it.  Fix.
Tony Meyer        2003-09-29  smtpproxy: Fix a minor printing error that would cause a traceback.
Tony Meyer        2003-09-29  imapfilter: Fix trying to view IMAP folders before restarting and after entering in details.
Tony Meyer        2003-09-28  Don't use 'pragma: no_cache' to try and stop browsers caching the web interface pages.
Skip Montanaro    2003-09-26  Correct sense of include_trained test in mbox_train.
Tony Meyer        2003-09-26  If the user is using Windows, also install pop3proxy_service.py and pop3proxy_tray.py.
Tony Meyer        2003-09-24  Fix sb_xmlrpcserver to work with the renamed options/scripts.
Tony Meyer        2003-09-24  Fix [ 809769 ] TypeError when training 1.0a6

Release 1.0 Alpha 6
===================

Skip Montanaro    2003-09-19  Worm around a possible email pkg bug.
Skip Montanaro    2003-09-19  hammiebulk & mboxtrain: Minor performance boost when training on lots of mail.
Skip Montanaro    2003-09-19  Place a threshold on the number of items displayed per section in the review page of the UI.
Tony Meyer        2003-09-18  Change the Outlook plug-in to use the general default (currently False) for the experimental_ham_spam_imbalance adjustment.
Tony Meyer        2003-09-18  Change the default for address_headers to include to, cc, reply-to, and sender as per Tim's suggestion.
Tony Meyer        2003-09-18  Store the user's caches and messageinfo.db file in the app data folder as well (by default), if we have everything else there.
Tony Meyer        2003-09-18  If we can't find a config file anywhere but the windows app data directory, then load it.
Tony Meyer        2003-09-18  Use urllib not urllib2 to shut down the proxy.
Tony Meyer        2003-09-18  Create the server strings for the UI *after* reading in the command line parameters.
Tony Meyer        2003-09-18  Move notate_to and notate_subject options to the "Headers" section.
Tony Meyer        2003-09-18  Move all the storage options in the "pop3proxy" section to the "Storage" section.
Tony Meyer        2003-09-18  Remove the hammie debug options, and use the "Headers" evidence options instead.
Tony Meyer        2003-09-17  Fix [ spambayes-Bugs-806632 ] sb_server failure when saving config
Tony Meyer        2003-09-17  Outlook: Add a warning for those with highly (>5 times) imbalanced ham and spam.
Mark Hammond      2003-09-17  pop3proxy_service: Only munge sys.path in source-code versions, and as the service starts, have it report the username and ini file it is using. In binary builds, write a log to %temp%\SpamBayesServicen.log
Mark Hammond      2003-09-17  If we are running Windows, have no valid config file specified, and have the win32all extensions available, default to: \Documents and Settings\[user]\Application Data\SpamBayes\Proxy
Tony Meyer        2003-09-16  Fix [ 795145 ] pop3proxy review page dies with mixed gzip/non messages
Mark Hammond      2003-09-15  Outlook: Load dialog bitmaps directly from the executable in binary builds.
Adam Walker       2003-09-15  Updated pop3proxy_tray to support the service.
Tony Meyer        2003-09-15  Removed the gary_combining option and code.
Tony Meyer        2003-09-15  Add a (basic) check for version option to the pop3proxy tray app.
Tim Peters        2003-09-15  Fix SF bug 806238:  urllib2 fails in Outlook new-version chk.
Tim Peters        2003-09-15  Outlook: ShowClues():  Made the clue report a little prettier, and (I hope) a little easier to follow.
Tony Meyer        2003-09-13  Fix [ 805351 ] If cc: address is not qualified, proxy fails to send message
Mark Hammond      2003-09-12  pop3proxy_tray: Use simple logging strategy similar to the Outlook addin - if we have no console, redirect either to win32traceutil (source-code version) or to a %TEMP\SpamBayesServer1.log (yet to be released binary version).
Mark Hammond      2003-09-12  pop3proxy_tray: When running from binary, don't hack sys.path.  When running from source code, hack sys.path based file path rather than on os.getcwd.
Mark Hammond      2003-09-12  pop3proxy_tray: When running from binary, load the icon from the executable rather than a .ico file.
Tim Peters        2003-09-12  Outlook: ShowClues():  Add lines revealing the # ham and spam trained on.
Tony Meyer        2003-09-11  When running setup.py if the old (named) files exist, offer to delete them.
Tony Meyer        2003-09-11  Add a unittest to check that we correctly fail when no dbm modules are available.
Anthony Baxter    2003-09-11  Add a new file: NEWTRICKS.TXT to record ideas that have and haven't been tried.
Richie Hindle     2003-09-11  Bug 803501: Fix the "No dbm modules available" message to print rather than crash. 
Skip Montanaro    2003-09-11  Implement a better fix for the storage.py pickle/dbm problems.
Mark Hammond      2003-09-10  Outlook: use the classifier's (new) store method rather than an Outlook specific one.
Tony Meyer        2003-09-10  Re-fix storage.py so that hammie works with a pickle or dbm.
Tony Meyer        2003-09-09  Fix for [ 802545 ] crash when logging off imapfilter UI
Tony Meyer        2003-09-09  Fix for [ 802347 ] multiline options saved incorrectly
Tony Meyer        2003-09-09  Implement half of [ 801699 ] migration from hammie to sb_* scripts (although in a different way)
Tony Meyer        2003-09-09  sb_server should store and close the db before reopening it.  gdbm fails if we do not do this.  Fix this.
Tony Meyer        2003-09-09  imapfilter: correctly handle IMAP servers that (wrongly) fail to put folder names in quotation marks
Mark Hammond      2003-09-09  Add a close method to the various storage classes.
Sjoerd Mullender  2003-09-08  Fix for [ 801952 ] Imapfilter appending headers
Sjoerd Mullender  2003-09-08  imapfilter: Count all messages being classified instead of just the ones from the last folder.
Sjoerd Mullender  2003-09-08  Trivial fix for IMAP over SSL.
Tony Meyer        2003-09-08  imapfilter: handle a folder name as a literal when presenting a list to choose from
Tony Meyer        2003-09-08  imapfilter: handle IMAP servers that don't pass a blank result line for an empty search
Mark Hammond      2003-09-08  Outlook: When we fail to add the 'Spam' field to a read-only store (eg, hotmail), complain less loudly.
Mark Hammond      2003-09-08  Fix [ 798362 ] Toolbar becomes unresponsive and must be recreated
Tony Meyer        2003-09-06  Add a missing file that's necessary to try out the sb_pop3dnd.py script, and the version and options necessary.
Tony Meyer        2003-09-06  Fix [ 800555 ] 1.0a5 release missing key outlook files.
Tony Meyer        2003-09-05  Remove backwards compat code for options, and update all (I hope) the remaining code that uses it.
Tony Meyer        2003-09-05  Move and rename all top-level scripts other than setup.py

Release 1.0 Alpha 5
===================

Tony Meyer     2003-09-03  imapfilter: We would crash if we hadn't set anything up and didn't prompt for password.
Adam Walker    2003-09-03  pop3proxy_tray: Switch icons based on if the proxy is running or not. Provide some info found on the information page in the tooltip of the icon.
Tony Meyer     2003-09-02  Add a rough autoconfigure script, which will set up both spambayes and a mail client to use pop3proxy
Richie Hindle  2003-09-01  Fix [ 797890 ] "assert hamcount <= nham" problem.
Tony Meyer     2003-09-01  Fix [ spambayes-Bugs-796996 ] SMTP server not started until restart.
Richie Hindle  2003-09-01  Integrated [ 791393 ] HTTP Authentication, which closes #791319.
Tony Meyer     2003-09-01  Added [ 796832 ] Word query should show all words starting with certain text 
Tony Meyer     2003-09-01  Fix for [ 797316 ] Extra CRLF to SMTP server causes garbage error.
Richie Hindle  2003-08-31  The web UI's Shutdown command, and stopping the pop3proxy_service, now wait for any open proxy connections to finish before exiting the process.
Richie Hindle  2003-08-31  X-Spambayes-Exception headers now contain a traceback as well as the exception.
Richie Hindle  2003-08-29  Fix the yellow colour of the header boxes in the web interface in strict browsers (i.e. not IE ;)
Tony Meyer     2003-08-28  smtpproxy: try a bit harder to proxy the exact command if we aren't going anything with it, and try to match it more closely even if we are.
Mark Hammond   2003-08-27  Outlook: all menu sub-items are now temporary.
Mark Hammond   2003-08-27  Fix [ 776808 ] Expanding toolbar crashes outlook
Mark Hammond   2003-08-27  Outlook: ensure we only try and use tree items listed as valid by the mask.
Mark Hammond   2003-08-27  Fix [ 795749 ] "Score after training" doesn't in CVS
Mark Hammond   2003-08-27  Outlook: add 'View Log' button to the Diagnostics dialog.
Tony Meyer     2003-08-26  Fix restoring defaults from the web interface.
Tony Meyer     2003-08-26  Implement [ 791254 ] Advanced configuration panel.
Tony Meyer     2003-08-26  smtpproxy: don't convert unknown commands to upper case as this mucks about with passwords, which might be case sensitive.
Richie Hindle  2003-08-26  Fixed [ 787251 ] Problem refreshing message list and [ 790051 ] Can't review messages.
Richie Hindle  2003-08-26  Added a missing line break in the status pane on the Home page when there are no proxies configured.
Richie Hindle  2003-08-26  Fix [ 743131 ] Specifying a POP3 server on the pop3proxy command line but no local port number (ie. no -l) now works again, defaulting to local port 110.
Skip Montanaro 2003-08-26  Change the storage.py print statements to print to stderr, so that using verbose=True is possible using apps that work through stdin.
Mark Hammond   2003-08-26  Fix [ 779319 ] ntpath Unicode error
Mark Hammond   2003-08-26  Outlook: default folder names used by the Wizard are now "Junk E-Mail" and "Junk Suspects"
Mark Hammond   2003-08-26  Outlook: the experimental 'timers' options got upgraded to the 'filter' section.
Adam Walker    2003-08-26  Outlook: added button on advanced tab to display the spambayes data folder.
Adam Walker    2003-08-26  Outlook: move Filter Now to a separate dialog invoked by the drop down menu on the toolbar.
Tony Meyer     2003-08-25  Fix some old option names.
Tony Meyer     2003-08-25  Change the notate_to and notate_subject options to notate for spam, unsure, ham, or any combination (including none) thereof.
Tony Meyer     2003-08-25  Add no_cache_large_messages option.  If messages are bigger than this, don't cache them (to avoid caching messages with massive attachments that are already correctly classified).
Tony Meyer     2003-08-25  Add an open_storage function to centralise opening storage, which also works with the new SQL classifiers.  Used by pop3proxy and hammiefilter at the moment.
Tony Meyer     2003-08-25  smtpproxy should now work as previously, but also training on the exact message sent, rather than looking up via id.  Lookup into the imapfilter folders is also possible.
Mark Hammond   2003-08-25  Fix [ 785389 ] Folders missing in Spambayes manager.
Mark Hammond   2003-08-25  Fix [ 786952 ] Error when profile name has invalid filename characters.
Mark Hammond   2003-08-25  Outlook: We now work with "IPM.Note" and "IPM.Anti-Virus*"
Mark Hammond   2003-08-25  Outlook: Fail when we can't find a default message store.
Mark Hammond   2003-08-25  Fix "[ 788495 ] Filter fails when folder full"
Mark Hammond   2003-08-25  Outlook: remove last win32ui dialog.
Mark Hammond   2003-08-25  Outlook: change default filter action to "move"
Mark Hammond   2003-08-25  Outlook: don't score if the training was canceled.
Mark Hammond   2003-08-25  Outlook: present the wizard when required.
Mark Hammond   2003-08-25  Outlook: allow filtering to be enabled, even if no training information!
Tony Meyer     2003-08-23  Add [ 789916 ].  Outlook Express .dbx files can now be used to train, just like mbox files.
Mark Hammond   2003-08-23  Outlook: we can cancel a train without destroying the DB, and mail that comes in during the training will not use the partial db.
Mark Hammond   2003-08-23  An empty 'allowed values' now allows an empty string.
Mark Hammond   2003-08-23  Outlook: add a "New Folder" button to the folder selector dialog.
Mark Hammond   2003-08-20  Outlook: add wizard dialogs.
Tony Meyer     2003-08-19  Implement [ 790615 ] Allowed remote connections management, which addresses [ 698036 ] pop3proxy security
Tony Meyer     2003-08-19  Allow @ and = in paths.
Adam Walker    2003-08-19  Outlook: add a Wizard framework.
Adam Walker    2003-08-19  Outlook: add a diagnostic dialog.
Adam Walker    2003-08-18  Fix [ 790406 ] Allow the timers to be set in half second increments.
Mark Hammond   2003-08-18  Improve the starting/stopping of the pop3proxy service
Adam Walker    2003-08-18  Outlook: change the manager dialog to a tabbed interface, and add a logo to it.
Tony Meyer     2003-08-18  Allow the pop3proxy_service to start smtpproxy as well
Tony Meyer     2003-08-18  Add version information to the web interface, as requested in [ spambayes-Bugs-790051 ] Can't review messages if probability header is turned on
Tony Meyer     2003-08-16  which_database.py: Make the script a little smarter about checking if bsddb[3] is available.
Tony Meyer     2003-08-14  Fix [ spambayes-Bugs-788008 ] smtpproxy.py assumes too good format for addresses
Tony Meyer     2003-08-14  Implement patches from [ 788001 ] mboxtrain.py Maildir bugfix and feature
Tony Meyer     2003-08-14  Fix [ 787296 ] Local installation problem: hammiefilter_persistent_storage
Tony Meyer     2003-08-14  Fix [ 788002 ] hammiebulk.py uses wrong option name
Tony Meyer     2003-08-13  If you didn't use the -p switch to enter your password interactively, imapfilter would try and get it from the options, but if it wasn't there yet (because you hadn't done the setup yet), it would crash.  Fix this.
Skip Montanaro 2003-08-13  Add a simple n-way classifier using a cascade of binary SpamBayes classifiers
Tony Meyer     2003-08-12  Web interface: At some point (before the 1.0a4 release) selecting both "header" and "body" stopped working.  This fixes that.
Tony Meyer     2003-08-12  Have the review messages page put the unsure messages at the top, because they are the most important to take action on
Mark Hammond   2003-08-11  Outlook: SpamClues shows the percentage as well as the raw score.
Adam Walker    2003-08-09  Outlook: Added website links to the help menu.
Adam Walker    2003-08-09  Use the Tahoma font in the Outlook dialogs.
Mark Hammond   2003-08-09  Fix [ 780612 ] Outlook incorrectly trains on moves messages.
Mark Hammond   2003-08-08  Fix bug [ 784323 ] Plug-in will not initialize/watch in offline mode
Tony Meyer     2003-08-07  Add a mySQLClassifier class
Skip Montanaro 2003-08-07  Add a postgreSQL classifier class, and a base SQLClassifier class
Tony Meyer     2003-08-07  Remove dumbdbm from the config options
Skip Montanaro 2003-08-07  Remove dumbdbm from the possible dbm storage options
Tony Meyer     2003-08-07  Fix [ 784296 ] imapfilter broken with Python 2.3
Adam Walker    2003-08-06  Outlook: move the html menu options to a Help sub-menu.
Mark Hammond   2003-08-06  Fix [ 780819 ] Images pasted to clipboard each startup
Mark Hammond   2003-08-04  Add a get_option method, so an option instance itself can be fetched.
Mark Hammond   2003-08-04  Outlook: new data driven dialogs loaded from Windows .rc scripts.
Mark Hammond   2003-08-04  Outlook: add a resource script parser, by Adam Walker.
Mark Hammond   2003-08-01  Outlook: fix [ 780801 ] IMAP Still Failing - GetField() returns None on MAPI error
Mark Hammond   2003-07-30  Outlook: avoid passing a float to C functions that take an int (the slider pos)
Mark Hammond   2003-07-29  Fix [ 779049 ] email.Errors.HeaderParseError: Continuation line seen ...
Mark Hammond   2003-07-29  Outlook: change the way we detect 'unsent' items - this way catches both unsent items, and copies of sent items.
Mark Hammond   2003-07-29  Outlook: add ability to check for the latest version.
Mark Hammond   2003-07-29  Version.py: indicate the generated output is generated :)  Make work for Python 2.2, but don't trust its config parser for remote data.
Mark Hammond   2003-07-29  Support fetching the "latest" set of version data from the spambayes web site.
Richie Hindle  2003-07-28  Made the pop3proxy work with fetchmail.
Mark Hammond   2003-07-28  Outlook: Add a new experimental 'timer'.
Mark Hammond   2003-07-26  Outlook: Log the binary version in the binary.
Mark Hammond   2003-07-25  Fix locale issues in Outlook - fixes [ 765912 ] AssertionError: Proportions must add to 1.0 ...
Tim Peters     2003-07-25  Fix SF bug 777026: Possible cause for db corruption in DBDictClassifier.
Mark Hammond   2003-07-25  Created a directory & readme for test suites, including a storage.py test.
Tony Meyer     2003-07-25  [ 777165 ] Typo in Options.py causes bogus warning on reading config
Mark Hammond   2003-07-23  Outlook: fix a bug in how attachment properties were fetched - if the body was "large", we attempted to get the "large property" from the mail object itself, rather than the attachment.
Mark Hammond   2003-07-23  Outlook: fix a problem where multipart/signed messages could still screw us.
Mark Hammond   2003-07-23  Fix [ 693387 ] user-composed messages are filtered.
Mark Hammond   2003-07-23  Outlook: Check the message flag for the "unsent" bit.
Richie Hindle  2003-07-22  You can once again specify local addresses as well as ports for the pop3proxy to listen on (was broken in 1.0a3 and 1.0a4).
Mark Hammond   2003-07-21  Outlook: Paul Moore reports that not specifying USER_DEFERRED_ERRORS solves his "unread flag" issue - and we certainly don't need that flag here, so out it goes.
Mark Hammond   2003-07-21  Outlook: While we are printing versions, Python gets a go.
Mark Hammond   2003-07-21  Fix 690418: Non mail items filtered by Outlook
Mark Hammond   2003-07-21  Fix 719586: Cannot View Spam Cues for Undeliverable Reports
Mark Hammond   2003-07-21  Outlook: Add IsFilterCandidate() method to a message object to determine if this is a message we should try and filter.
Mark Hammond   2003-07-21  Outlook: Rationalize code that creates a message object.
Mark Hammond   2003-07-21  Outlook: Ignore errors when enumerating stores.
Mark Hammond   2003-07-21  Outlook: Work better with a unicode data directory.
Mark Hammond   2003-07-21  Outlook: Add a new filter option - "save_spam_info", default=True.
Mark Hammond   2003-07-20  Fix [ 769346 ] Problems after deleting certain spam folder as implemented in [ 769981 ] Outlook plugin: allow user to change spam and unsure.
Mark Hammond   2003-07-20  pop3proxy_service: log exceptions if the server thread dies unexpectedly.
Mark Hammond   2003-07-20  Fix [ 761499 ] pop3proxy_service doesn't stop when shutdown from browser.
Mark Hammond   2003-07-20  Fix [ 769346 ] Problems after deleting certain spam folder as implemented in [ 769981 ] Outlook plugin: allow user to change spam and unsure.
Mark Hammond   2003-07-19  pop3proxy_service: Redirect output to win32traceutil (for want of a better place)
Richie Hindle  2003-07-19  pop3proxy: Print a traceback as well as adding an X-Spambayes-Exception header when there's an exception raised while processing a message.
Tony Meyer     2003-07-18  Fix [ 773452 ] Unable to use fractional number as spam_threshold.
Richie Hindle  2003-07-18  pop3proxy:  "ASCII decoding error" problem fixed.
Skip Montanaro 2003-07-15  dbmstorage: trivial hack to give dumbdbm a sync() method (which Shelve will call) and hopefully reduce database corruption
Mark Hammond   2003-07-09  Outlook: Include the Windows version in the log.
Mark Hammond   2003-07-09  Outlook: Use the passed field name rather than hardcoded "Spam".
Mark Hammond   2003-07-09  Fix 765042: IMAP mail fails to filter
Tony Meyer     2003-07-09  Allow $ in pathnames, which fixes [ 768162 ] UNC path for data_directory?
Tony Meyer     2003-07-09  mboxtrain: Use /tmp/ as the temp directory, not /cur/tmp or /new/tmp.  Fixes [ 768221 ] v1.0a4 dies when training on Maildir
Mark Hammond   2003-07-08  Fix [ 760062 ] Traceback untraining a single message - typo in assert.
Tony Meyer     2003-07-08  hammiebulk: a belated patch to account for the default persistent_storage_file option changing.
Richie Hindle  2003-07-07  Added no_cache_bulk_ham option: suppresses caching of 'Precedence: bulk' ham, to stop mailing list traffic swamping the web UI's training page.
Richie Hindle  2003-07-07  Prevent the "Show clues" links on the web UI's training page from word-wrapping and making all the table rows two lines high.


Release 1.0 Alpha 4
===================

Tony Meyer  2003-07-04  Fix SF#761677 ("mboxtrain.py's -n option has no effect")
Richie Hindle   2003-07-03  Put the current date and time into the footer of the web interface, rather than always displaying "Mon Dec 30 14:04:32 2002".
Richie Hindle   2003-07-03  Fix a bug in pop3proxy where long attachments would be broken.
Richie Hindle   2003-07-02  If an exception occurs parsing a message in pop3proxy, append an 'exception' header to the message and recover.
Richie Hindle   2003-07-02  Stop the pop3proxy including the trailing . when passing messages to the email package.
Mark Hammond	2003-07-01	Version 003 of the binary.
Mark Hammond    2003-07-01  In outlook plugin, display a message for "Delete as Spam" or "Recover from Spam" when SpamBayes is not enabled.
Skip Montanaro  2003-07-01  Encode unicode objects as utf-8 before using as a key for DBDictClassifier instances. (Fixes [ spambayes-Bugs-761670 ] Unexpected unicode key inbsd db)
Mark Hammond    2003-07-01  In Outlook plugin, toolbar was not initialized when "Outlook Today" was the default view.
Mark Hammond    2003-06-30  In Outlook plugin, don't (try to) do OnStartupComplete work if OnConnection failed.
Mark Hammond    2003-06-30  In Outlook plugin, log the repr() of messages displayed in a dialog, as they often have embedded \r\n chars - repr() keeps the whole thing to a single line.
Tim Peters  2003-06-28  A new stripper to squash yet another way of hiding content in HTML spam, like Ere<frame><noframes>ywl55</noframes></frame>ctions to hide Erections.
Tim Peters  2003-06-27  In storage.py store():  If a Shelf db doesn't have a key, then "del db[key]" should raise KeyError.
Tim Peters  2003-06-27  In storage.py store():  Use iteritems() instead of items() to materialize the changed_words guts.
Tim Peters  2003-06-27  In storage.py, check WORD_CHANGED and WORD_DELETED with is not ==.
Tim Peters  2003-06-27  Remove a superstitious check for None in storage.py (_wordinfoset()).
Tim Peters  2003-06-27  Fix a bug in storage.py (_wordinfoget()) which could cause incorrect token counts.
Tony Meyer	2003-06-23	In imapfilter, try to append without flags if appending fails.
Tony Meyer	2003-06-23	Implement SF#755098 - "Progress Indicator in imapfilter"
Tony Meyer	2003-06-23	Fix the -i switch in imapfilter.
Barry Warsaw	2003-06-22	Don't try and get password from options if -p is specified in imapfilter.
Barry Warsaw	2003-06-22	Fix an import error in imapfilter.

Release 1.0 Alpha 3
===================

Tony Meyer	2003-06-22	Fix RFC822.PEEK error in imapfilter.
Neale Pickett	2003-06-21	"In hammiefilter,  make untrain mode work."
Mark Hammond	2003-06-20	"In Outlook plugin, add a 'verbose' option to the options."
Mark Hammond	2003-06-19	"In Outlook plugin, change ""Anti-Spam Manager"" -> ""SpamBayes Manager"""
Mark Hammond	2003-06-18	"In Outlook plugin, allow either spam or unsure messages to be marked as read as they are filtered."
Mark Hammond	2003-06-18	"In Outlook plugin, more work on the toolbar."
Mark Hammond	2003-06-17	2 new [General] options for Outlook plugin - delete_as_spam_message_state and recover_from_spam_message_state.
Mark Hammond	2003-06-17	"In Outlook plugin, prevent ""Deleted items"", Outbox and Sent Items from appearing in the folder list.  Fixes: [ 749277 ] Should prevent ""Deleted Items"" being target folder."
Mark Hammond	2003-06-17	"In Outlook plugin, catch the assertion error in the classifier, and warn the user their database is corrupt."
Mark Hammond	2003-06-17	"In Outlook plugin, introduce ReportErrorOnce, useful for errors on event handlers that you don't want to bombard the user with."
Mark Hammond	2003-06-17	"In Outlook plugin, an error on a single sub-folder need not be fatal.  Hopefully fixes [ 743515 ] Unable to expand folders in folder selection dialog."
Mark Hammond	2003-06-17	"In Outlook plugin, DeleteAsSpam didn't detect ""no folder"" correctly."
Anthony Baxter	2003-06-17	"In IMAPFilter interface, fix parm_map code."
Mark Hammond	2003-06-16	Split OptionsClass into a separate file.
Mark Hammond	2003-06-16	Allow lists to be used for multi-valued options.
Mark Hammond	2003-06-16	"Allow the first entry in the ""defaults"" table to be a sub-class of Option."
Mark Hammond	2003-06-16	"In Outlook plugin, when training, instead of suggesting the inbox, suggest folders we watch."
Mark Hammond	2003-06-16	"In Outlook plugin, change ""Anti-Spam"" on the dropdown to ""SpamBayes"""
Mark Hammond	2003-06-16	"In Outlook plugin, huge changes to configuration.  No longer use a pickle, but instead a series of .INI files."
Tony Meyer	2003-06-12	Update pop3proxy and imapfilter to print out version information.
Skip Montanaro	2003-06-10	Correction to VM mailer addition to spambayes.el
Tony Meyer	2003-06-08	"Add pop3proxy, hammie, smtpproxy & imapfilter version information."
Neale Pickett	2003-06-06	Integrated code for the VM mailer into spambayes.el
Mark Hammond	2003-06-05	Add a version information repository.
Mark Hammond	2003-06-05	Change Outlook plugin to use new version information repository.
Mark Hammond	2003-06-04	"In Outlook plugin, no longer default to the ""Inbox"" (see also SF#741797 ('Does not filter incoming mail'))."
Mark Hammond	2003-06-04	"In Outlook plugin, when filtering, saving the spam score is no longer fatal."
Tony Meyer	2003-06-04	"In muttrc, fix incorrect Spambayes header name."
Mark Hammond	2003-06-03	Handle malformed messages better in the Outlook plugin.
Mark Hammond	2003-06-03	"In Outlook plugin, create our own toolbar, rather than using the standard one."
Mark Hammond	2003-06-03	Fix an Outlook plugin error that would try to save the database when classifying.
Mark Hammond	2003-06-03	"Make Outlook plugin log refer to ""Spambayes"" rather than ""SpamAddin"""
Mark Hammond	2003-06-03	Use 'wait' cursor when incremental training in Outlook plugin.
Mark Hammond	2003-06-03	"In Outlook plugin, save config when dialog closes and not at shutdown."
Mark Hammond	2003-06-03	Clean up toolbar images.
Tony Meyer	2003-05-30	Added URL slurper.
Mark Hammond	2003-05-29	"DB classifier keeps a list of ""changed words"" to prevent saves from updating *all* words."
Mark Hammond	2003-05-29	DB classifier doesn't cache hapaxes.
Tony Meyer	2003-05-26	Fix SF#737986 ('Message.as_string() fails.').
Tony Meyer	2003-05-26	Restore notate_to and notate_subject functionality to pop3proxy.
Tony Meyer	2003-05-25	Expose experimental ham/spam imbalance option to pop3proxy/imapfilter users
Tim Peters	2003-05-25	Restore __slots__ declaration to WordInfo object in classifier.py
Tim Peters	2003-05-25	PickledClassifier.load():  use getstate/setstate to copy the state. 
Tony Meyer	2003-05-21	Cosmetic changes to pop3proxy and imapfilter interface.
Tony Meyer	2003-05-21	"Remove the ""account for string nham/nspam"" code in classifier."
Tim Peters	2003-05-19	Catch BoundaryError when parsing messages.
Tim Peters	2003-05-19	Improve tokenisation for messages that have text that looks like Wr<!$FS|i|R3$s80sA >inkle Reduc<!$FS|i|R3$s80sA >tion
Tim Peters	2003-05-19	Decode numeric character entities in html.
Tim Peters	2003-05-19	Replace <p> and <br> tags with single blanks.
Mark Hammond	2003-05-15	The training dialog now shows a correct progress bar for the *complete* operation - training *and* scoring
Mark Hammond	2003-05-15	Fix SF#706170 ('Execute test suite fails in Outlook').
Mark Hammond	2003-05-15	Save bsddb databases after a training operation (should prevent Outlook ever saving at shutdown).
Mark Hammond	2003-05-15	Print how long each save takes (so people can complain).
Mark Hammond	2003-05-15	Keep and print some stats about how many items SpamBayes saw.
Mark Hammond	2003-05-14	Various changes to urlslurper.py
Mark Hammond	2003-05-14	Fix SF#737956 ('No hourglass when building folder lists').
Mark Hammond	2003-05-14	Fix SF#737955 ('Transient connection error disables plugin').
Tony Meyer	2003-05-14	Added missing import to UserInterface.py
Tony Meyer	2003-05-14	Increased efforts to stop browsers caching the interface pages.
Tony Meyer	2003-05-13	Added refresh button to review messages page in pop3proxy ui.
Tony Meyer	2003-05-13	"Added ""check again"" link on 'no more untrained messages page' in pop3proxy ui."
Tony Meyer	2003-05-13	"Added ""html_ui"":""display_to"" option."
Tony Meyer	2003-05-11	Fixed KeyError bug in message.py.
Tony Meyer	2003-05-11	Added SSL support to imapfilter (untested).
Tony Meyer	2003-05-06	Added getattr backwards compatibility for renamed options.
Tony Meyer	2003-05-06	IMAP Filter now deletes existing spambayes headers before training.
Tony Meyer	2003-05-06	"Added ""Storage"":""messageinfo_storage_file"" option."
Tony Meyer	2003-05-06	Fix for SF#733247 ('crash when using merged-in options').
Tim Stone	2003-05-04	Catch exception when a file in the pop3proxy cache mysteriously disappears.
Tony Meyer	2003-05-04	Fix bug stopping some messages loading into pop3proxy cache.
Tony Meyer	2003-05-03	Removed OptionConfig.py
Mark Hammond	2003-05-03	Correct usage doc with respect to default directory.
Mark Hammond	2003-05-03	Fix SF#715248 ('Pickle classifier should save to a temp file first').
Mark Hammond	2003-05-03	Formalized error reporting in Outlook plugin.
Mark Hammond	2003-05-03	"Created special handling for ""startup errors"" in Outlook plugin"
Mark Hammond	2003-05-03	Allow test suite to work with bsddb3 or bsddb.
Tony Meyer	2003-05-03	Fix invalid options names in IMAP and POP3 user interface.
Tony Meyer	2003-05-03	Fix incorrect state information displaying after configuration.
Tony Meyer	2003-05-02	Fix temp file problem with web interface on linux.
Tony Meyer	2003-05-02	Update configuration file reading so that writing uses same delimiters.
Tony Meyer	2003-05-02	Fix temp file problem with web interface on linux.
Mark Hammond	2003-05-01	Ignore the pywin.dialogs package in the Outlook plugin install.
Mark Hammond	2003-05-01	Save the database after an explicit train.
Mark Hammond	2003-05-01	Fix globals statements in URL slurper.
Mark Hammond	2003-05-01	Fix testtools import in URL slurper.
Mark Hammond	2003-05-01	Print URL slurper status to stderr.
Mark Hammond	2003-05-01	Added socket.error catching in URL slurper.
Mark Hammond	2003-05-01	Avoid slurping non html content.
Tony Meyer	2003-05-01	Fix bug where URL cache would not be in the current working directory by default.
Tony Meyer	2003-04-28	Stop using IMAP uids as our ids.
Tony Meyer	2003-04-28	Fix SelectFolder bug in IMAP Filter.
Tim Stone	2003-04-28	Create IMAP session object for each login.
Tony Meyer	2003-04-28	Fix for SF#728886 ('In the pop3 UI not able to pass more than 1 server').
Tony Meyer	2003-04-28	Fix for incorrect is_boolean code in Options.py
Tony Meyer	2003-04-28	"IMAP Filter now only retrieves RFC822 headers when iterating, not whole message."
Tim Stone	2003-04-28	Moved CRLF replacement from IMAP to generic message class.
Tony Meyer	2003-04-27	Minor bug fixes to Options.py
Tony Meyer	2003-04-27	Fixed configuration file reading bug forcing single space separators instead of any whitespace.
Tony Meyer	2003-04-27	Fixed Options.py bug reported by Tim Stone.
Tony Meyer	2003-04-27	Fix hammiefilter calling mergefiles instead of merge_files.
Tony Meyer	2003-04-25	Added message_from_string functions to message.py and imapfilter.py
Tony Meyer	2003-04-25	Extra error checking in IMAP Filter.
Tony Meyer	2003-04-24	"Fix SF#725307 (""Outlook plugin won't load (anymore)"")."
Tony Meyer	2003-04-24	Fix SF#725466 ('Include a proper locale fix in Options.py').
Tony Meyer	2003-04-24	Fix SF#726255 ('Problem if bayescustomize.ini not there').
Tony Meyer	2003-04-24	Moved the CRLF fixing from generic message class to IMAP filter.
Tony Meyer	2003-04-24	Major rewrite of Options.py
Tony Meyer	2003-04-24	Changed options with multiple values to tuples.
Tony Meyer	2003-04-24	Fixed bug where the IMAP user interface would try to display a folder before logging in.
Tony Meyer	2003-04-24	Added convert_config_file script.
Tim Stone	2003-04-24	Fix message.py incorrectly persisting/restoring state.
Tony Meyer	2003-04-24	Fix Options.py convert and unconvert functions.
Tony Meyer	2003-04-24	Fix valid characters for IMAP username and password.
Tony Meyer	2003-04-24	Improve behaviour of convert_config_file script.
Tony Meyer	2003-04-24	Check that spam/unsure/filter folders exist in IMAP before filtering/training.
Tony Meyer	2003-04-24	Removed CompatConfigParser.py
Tony Meyer	2003-04-24	Removed UpdatableConfigParser.py
Tony Meyer	2003-04-22	Fixed is_valid method for sets.
Tim Stone	2003-04-22	Added extra verbose output in IMAP Filter.
Tim Stone	2003-04-22	Corrected counting error in IMAP Filter.
Tony Meyer	2003-04-22	Fix SF#725616 ('Options.py mergefiles crashes (+ fix)').
Tony Meyer	2003-04-22	Improved processing of fetch response in IMAP filter.
Tim Stone	2003-04-21	Cosmetic changes to the web configuration page.
Skip Montanaro	2003-04-21	Fix CRLF regex in message.py
Tony Meyer	2003-04-21	Fix SF#725307 ('Outlook plugin won't load (anymore)').
Tim Stone	2003-04-21	Rewrote is_valid method in Options.py
Tony Meyer	2003-04-20	Moved pop3proxy test code into separate module.
Tony Meyer	2003-04-20	"Allow """" as a valid option if the valid values are defined by a regex and multiple values are allowed."
Tony Meyer	2003-04-20	Change imapfilter server option to pop3proxy style (i.e. server[:port])
Tony Meyer	2003-04-20	Set web interface pages to not cache.
Tony Meyer	2003-04-20	Fixed imapfilter and pop3proxy web configuration.
Tony Meyer	2003-04-20	Change the select folder config for imapfilter to two pages.
Tony Meyer	2003-04-20	Added check for parsedate failing in imapfilter.
Tony Meyer	2003-04-20	Fix the regex for the date in imapfilter.
Tim Stone	2003-04-20	Removed unnecessary imports/comments in pop3proxy.
Tim Stone	2003-04-20	Changed pop3proxy's STAT handling to return a guess at new message size.
Tony Meyer	2003-04-19	Fixed updating of configuration files.
Tim Stone	2003-04-19	Correction to regex for smtpproxy servers validation.
Tony Meyer	2003-04-19	Stop IMAP filter filtering messages marked as deleted.
Tony Meyer	2003-04-19	Copy IMAP flags along with message.
Tony Meyer	2003-04-19	Use IMAP date instead of the local one.
Tony Meyer	2003-04-19	Added utility functions to Options.py to assist people to figure out what is available.
Tony Meyer	2003-04-18	"Remove support for pop3proxy_port, pop3proxy_server_name and pop3proxy_server_port options (long deprecated)."
Tony Meyer	2003-04-18	Remove option to launch smtpproxy and always do this from pop3proxy (if servers are specified).
Tony Meyer	2003-04-18	Fix smtpproxy bug that would prevent mail sent in the same session as training mail being delivered.
Tony Meyer	2003-04-18	Major rework of configuration file reading/options.  Section names no longer ignored.
Tony Meyer	2003-04-18	"Moved interface code out of pop3proxy into ImapUI, ProxyUI and UserInterface.py"
Tim Stone	2003-04-18	Added web interface support to imapfilter.
Tim Stone	2003-04-18	Only start browser if required in imapfilter.
Tony Meyer	2003-04-18	Fix for time retrieval in imapfilter when the date header is missing.
Tony Meyer	2003-04-18	Change the line endings fix (pop3proxy/imapfilter) to a more robust one (from smtplib).
Tim Stone	2003-04-18	Converted pop3proxy to use message.py.  (notate-body is no longer working)
Mark Hammond	2003-04-18	Fixed Outlook plugin to work in non-English locales.
Tim Stone	2003-04-17	Corrected newline mangling in imapfilter.
Tim Stone	2003-04-17	Corrected folder comparison operator in imapfilter.
Tim Stone	2003-04-17	Refactored functionality into an IMAPSession class.
Tim Stone	2003-04-17	Added -p option for password prompt in imapfilter.
Tim Stone	2003-04-17	Corrected imapfilter training error which would result in no training being done.
Tim Stone	2003-04-17	Corrected an error in the timed loop that unnecessarily kept IMAP sessions open.
Tim Stone	2003-04-17	Moved the header repaid regex into the message class.
Tony Meyer	2003-04-17	Added ConfigParser from Python 2.3 which solves many problems in the 2.2 version.
Tony Meyer	2003-04-17	Updated UpdatableConfigParser to use new 2.3 ConfigParser.
Tony Meyer	2003-04-16	Fix an imapfilter invalid date problem.
Tim Stone	2003-04-14	Fixed the imapfilter docstring not printing.
Tim Stone	2003-04-14	Changed imapfilter -e argument to y/n.
Tim Stone	2003-04-14	Added -l argument to imapfilter allowing looping.
Tim Stone	2003-04-14	Correctly extract timestamp for new messages in imapfilter.
Tim Stone	2003-04-13	Raise an error if message.py is asked to remember an unknown classification.
Tim Stone	2003-04-13	General cleanup of imapfilter.
Tim Stone	2003-04-13	Remove old message ids from the message info db when using imapfilter.
Skip Montanaro	2003-04-13	Fix train() in mboxtrain.
Tony Meyer	2003-04-13	Fix for user interface showing incorrect server strings when using pop3proxy_service.
Tony Meyer	2003-04-13	Various speed improvements to imapfilter.
Tim Stone	2003-04-12	Functional version of the imapfilter.
Tim Stone	2003-04-10	Made base message class more abstract and added a SBHeaderMessage class.
Tim Stone	2003-04-10	Made imapfilter use the new message class.
Tony Meyer	2003-04-09	Update imapfilter to reflect message class changes.
Tony Meyer	2003-04-08	Introduce a IMAPMessage class based on the spambayes Message class.
Tony Meyer	2003-04-08	Introduce an iterable IMAPFolder class.
Tony Meyer	2003-04-08	Allow filtering of multiple folders in IMAP filter.
Tim Stone	2003-04-08	Added methods to message.py to support copying one message to another.
Tim Stone	2003-04-08	Added logic to imapfilter to ensure that classification and training memory is preserved.
Tony Meyer	2003-04-07	First check-in of IMAP filter.
Tim Stone	2003-04-07	First check-in of message.py
Tim Stone	2003-04-07	Changed imapfilter to use the message class.
Tony Meyer	2003-04-03	Expire messages from the unknown pop3proxy cache as well as ham/spam caches.
Tony Meyer	2003-04-03	"Kick off expiry check each time a client connects to the proxy rather than on startup, for those who have the proxy stable!"
Tony Meyer	2003-04-03	"Add ""show clues"" button to the review message page in pop3proxy ui."
Tim Stone	2003-03-28	Unicode print error fix in notesfilter.
Mark Hammond	2003-03-23	Fix SF#707491 ('Pop3 proxy service code for Windows doesn't work...').
Mark Hammond	2003-03-20	Ensure database is saved before testing outlook plugin.
Mark Hammond	2003-03-20	Fix error in testing outlook plugin (getting wrong end of sorted list).
Tim Stone	2003-03-20	Added SF#703283 ('mboxtrain only trains on cur in maildir').
Mark Hammond	2003-03-18	Ensure all buttons are greyed during filter process in Outlook plugin.
Mark Hammond	2003-03-18	When running Outlook plugin from a binary redirect output to a log.
Mark Hammond	2003-03-18	Version 002 of the binary.
Mark Hammond	2003-03-17	"Warn, but ignore errors walking the folder tree in Outlook plugin."
Mark Hammond	2003-03-17	"Fix SF#704921 ('""Train now"" (outlook) fails ')."
Mark Hammond	2003-03-17	Prevent a single error filtering a message from stopping the whole filter process in Outlook plugin.
Mark Hammond	2003-03-16	Allow messages to be scored after training in Outlook plugin.
Mark Hammond	2003-03-16	Fix bug in Outlook plugin where filter operation report was reporting incorrect total.
Tony Meyer	2003-03-13	Revert Options.py to ConfigParser from UpdatableConfigParser.
Mark Hammond	2003-03-12	Added pop3proxy_service.py
Tony Meyer	2003-03-12	"Update web ui so that boolean options are radio buttons rather than text boxes, and multiple choice options are checkboxes."
Tony Meyer	2003-03-12	Separated out pop3proxy options and header options in pop3proxy web ui.
Tony Meyer	2003-03-12	Adds UpdatableConfigParser.
Tony Meyer	2003-03-12	Changes Options.py to use UpdatableConfigParser rather than ConfigParser.
Tony Meyer	2003-03-11	Fixes a bug in pop3proxy/smtpproxy where headers will appear in the message body.
Tony Meyer	2003-03-10	Added level & evidence headers in pop3proxy.
Mark Hammond	2003-03-09	"Correct ""data"" directory location in export.py."
Tony Meyer	2003-03-09	Added pop3proxy include_prob option to (optionally) note the score/prob in the classification header.
Tim Stone	2003-03-09	"Added configuration for pop3proxy include_prob option, add_mailid_to and strip_incoming mailIds options."
Tim Stone	2003-03-08	Fix SF#700165 ('MoveFileEx doesn't exist on Win98').
Tim Peters	2003-03-08	List unique tokens one per line in Outlook plugin's ShowClues.
Mark Hammond	2003-03-07	Handle MAPI exceptions better in Outlook plugin.
Mark Hammond	2003-03-07	"Centralise detection of ""not found"" exceptions in Outlook plugin."
Mark Hammond	2003-03-07	Suppress errors in outlook plugin when hotmail connector can't save the message.
T. Alexander Popiel	2003-03-07	Added another regime to regimes.py.
Tim Stone	2003-03-06	Added SF#690928 ('turn off saving messages in popproxy').
Skip Montanaro	2003-03-06	Catch extra exception in header parse errors.
Tim Stone	2003-03-06	"Fix SF#698852 (""can't classify messages"")."
Mark Hammond	2003-03-04	Fix a Outlook plugin bug that could cause incorrect word scores to be used/saved when a bsddb database is used.
Mark Hammond	2003-03-04	Remove unused 'wordcache' instance variable in storage.py.
Mark Hammond	2003-03-04	Show all tokens in message when showing clues in Outlook plugin.
Mark Hammond	2003-03-04	"Fix a bug in the Outlook plugin test code that used *all* ham/spam words, not just top 50."
Mark Hammond	2003-03-04	"Only remember source folder when filtering, not just scoring in Outlook plugin."
Mark Hammond	2003-03-04	"Only attempt to create ""Spam"" field on a mail item in Outlook plugin."
Mark Hammond	2003-03-04	If no items are found in Outlook plugin don't attempt to recurse folders.
Mark Hammond	2003-03-04	Fix SF#696476 ('Manual filtering in outlook fails').
Mark Hammond	2003-03-04	Fix SF#697120 ('Manual filtering in Outlook (still) fails').
Jeremy Hylton	2003-03-04	Band-aid decode_header() in pop3proxy.py
Mark Hammond	2003-03-03	Fix manager.py calling shutil.move (does not exist pre Python 2.3).
Mark Hammond	2003-03-03	Fix SF#696995 ('Invalid HTML comments are not ignored').
Skip Montanaro	2003-03-03	Note when subject charset is invalid (rather than raising an exception).
Tony Meyer	2003-03-02	Added support to smtpproxy for extracting an id in a Mozilla style forwarded message (HTML table).
T. Alexander Popiel	2003-03-01	"Add option to mkgraph to spit out counts *or* error rates, and n-day averages *or* cumulative."
Tony Meyer	2003-03-01	Small modifications to smtpproxy related pop3proxy options.
Tony Meyer	2003-03-01	Expose options for adding an id to incoming mail in pop3proxy.
Tony Meyer	2003-03-01	Expose options for using smtpproxy.
T. Alexander Popiel	2003-02-28	Put all regimes into regimes.py.  Define fpfnunsure and fnunsure regimes.
T. Alexander Popiel	2003-02-28	Fix name conflict between regimes list and regimes source file in incremental.py
T. Alexander Popiel	2003-02-28	Reduce the amount of progress output in incremental.py
Tony Meyer	2003-02-27	"Add options to add an id (as a header or in the body), strip such ids from incoming mail, find a message via the id, train messages by forwarding/bouncing to smtpproxy."
Tony Meyer	2003-02-27	First check in of smtpproxy.
T. Alexander Popiel	2003-02-27	"Added various files relating to incremental training (or ""self training"") regimes."
Tim Stone	2003-02-27	Fix SF#693423 ('email message generates error in pop3proxy.py').
Mark Hammond	2003-02-26	"Fix bug in dbmstorage.py for Python 2.2, which tried bsddb3 twice if it failed."
Tim Stone	2003-02-25	First check in of Lotus Notes filter.
Tim Stone	2003-02-25	Add option for pop3proxy to notate Subject: header.
Tony Meyer	2003-02-25	Fix bug in Corpus.get() which would never return the default value.
Mark Hammond	2003-02-18	"Store Outlook plugin files in the ""correct"" Windows directory."
Neil Schemenauer	2003-02-16	Add -c and -d options to mailsort.py.
Neil Schemenauer	2003-02-16	First check-in of dump_cdb.py
Mark Hammond	2003-02-13	Add SF#685746 ('Outlook plugin folder list sorted alphabetically').
Mark Hammond	2003-02-13	Handle exceptions when opening folders in Outlook plugin better.
Skip Montanaro	2003-02-13	Split BAYESCUSTOMIZE environment variable using os.pathsep.
Mark Hammond	2003-02-12	Check for correct exception when removing file in Outlook addin.
Mark Hammond	2003-02-12	Check for bsddb3 before bsddb (previously bsddb3 would never be found).
Tim Stone	2003-02-10	Changed BAYESCUSTOMIZE environment variable parsing from a split to a regex to fix filenames with embedded spaces.
Tim Stone	2003-02-08	Ensure that nham and nspam are instances of integer in dbExpImp.py
Tim Stone	2003-02-08	Ensure that nham and nspam becoming strings doesn't break classification.
Tim Stone	2003-02-08	Added ability to put classification in subject or to headers (for OE).
Mark Hammond	2003-02-07	Fix some errors using bsddb3 in Outlook plugin.
Mark Hammond	2003-02-04	"Fix SF#642740 ('""Recover from Spam"" wrong folder')."
Mark Hammond	2003-02-03	Change train.py to be able to work with a bsddb database.
Mark Hammond	2003-02-03	If a new bsddb or bsddb3 module is available use this instead of a pickle in the Outlook plugin.
Mark Hammond	2003-02-03	Add tick-marks to the filter dialog.
Mark Hammond	2003-02-03	Fix SF#677804 ('Untouched filter command error').
