[Note that all dates are in English, not American format - i.e. day/month/year] Release 1.0.4 ============= Tony Meyer 09/03/2005 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 07/02/2005 sb_server: When non-verbose, only report unique connection errors once per hour. Release 1.0.3 ============= Tony Meyer 28/01/2005 Distribute mscvr71.dll, as Microsoft recommend. Tony Meyer 28/01/2005 The 'fix' for escaping subject lines was incorrect; do it correctly. Release 1.0.2 ============= Tony Meyer 14/01/2005 Try and work around the reasonably common problems with imaplib and OS X. Tony Meyer 04/01/2005 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 02/01/2005 UserInterface.py: cgi.escape the configuration filename Tony Meyer 22/12/2004 Make Dibbler.py compatible with Python 2.2.1. Tony Meyer 17/12/2004 message.py: Change the deprecated function to work in Python 2.4. Tony Meyer 06/12/2004 Fix [ 1078923 ] Unicode support incomplete Tony Meyer 06/12/2004 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 29/11/2004 Subject lines are not cgi.escape()d in the web interface, which might cause errors - fixed. Release 1.0.1 ============= Tony Meyer 15/11/2004 Fix a bug in sb_dbexpimp.py where merging into an existing dbm file might lose training data. Tony Meyer 15/11/2004 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 11/11/2004 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 03/11/2004 Fix [ 1022848 ] sb_dbexpimp.py crashes while importing into pickle file Tony Meyer 03/11/2004 Fix [ 831864 ] sb_mboxtrain.py: flock vs. lockf Tony Meyer 03/11/2004 Fix [ 922063 ] Intermittent sb_filter.py failure with URL pickle Tony Meyer 29/09/2004 Fix [ 1036601 ] typo on advanced config web page Tony Meyer 28/10/2004 Add [ 715248 ] Pickle classifier should save to a temp file first Tony Meyer 21/10/2004 Fix [ 1051081 ] uncaught socket timeoutexception slurping URLs Tony Meyer 18/10/2004 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 13/10/2004 Fix mySQL storage option for the case where the server does not support rollbacks. Sjoerd Mullender 02/10/2004 imapfilter: Quote the search string that tries to find the message again that was just saved. Tony Meyer 30/09/2004 Fix [ 903905 ] IMAP Configuration Error Tony Meyer 15/09/2004 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. Tony Meyer 23/07/2004 For proxy handler for version checking, the proxy port needs to be an integer, not a string. Tony Meyer 19/07/2004 Fix [ 990700 ] Changes to asyncore in Python 2.4 break ServerLineReader Kenny Pitt 17/07/2004 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 14/07/2004 Fix [ 790757 ] signal handler created with wrong # of args Tony Meyer 14/07/2004 Fix [ 944109 ] notate_to/subject option valid values should be dynamic Tony Meyer 14/07/2004 Fix [ 959937 ] "Invalid server" message not always correct Skip Montanaro 10/07/2004 tte.py: 2.3 compatibility: add reversed() function Tony Meyer 09/07/2004 Update test_storage.py test to reflect (current) correct way to call open_storage. Fixes part of [ 981970 ] tests failing. Tony Meyer 09/07/2004 Using -u with sb_server had been broken. Fix this. 1.0 Final ========= (no changes from 1.0rc2) Release Candidate 2 =================== Tony Meyer 10/06/2004 Install license with binaries. Mark Hammond 01/06/2004 Fix Tony's fix for [ 943397 ] Cannot choose more than one Inbox folder to filter Tony Meyer 02/06/2004 Fix [ 961713 ] server error when trying to change Statistics Options Skip Montanaro 31/05/2004 Compatcsv: Abandon regexes as bad way to parse csv file - add simple unit test as well Skip Montanaro 31/05/2004 sb_dbexpimp.py: handle case of importing the old object craft csv module. Skip Montanaro 22/05/2004 sb_dbexpimp.py: Add a fake UnicodeDecodeError for Python 2.2 compatibility. Skip Montanaro 22/05/2004 Compatcsv: correct a list chomping bug (forgot a slicing ":") and use .readline() instead of .next() for Python 2.2 compatibility Tony Meyer 18/05/2004 Fix [ 955442 ] default_bayes_customize.ini not handled right Tony Meyer 14/05/2004 message.py: If we trigger the TypeError problem, try to do our best to put the message together anyway. Tony Meyer 14/05/2004 Handle people using a storage type that isn't pickle/dbm (like one of the sql ones). Tony Meyer 13/05/2004 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 12/05/2004 Fix [ 943397 ] Cannot choose more than one Inbox folder to filter Release Candidate 1 =================== Skip Montanaro 05/05/2004 sb_filter, sb_bnfilter use new mboxutils as_string(). Skip Montanaro 04/05/2004 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 04/05/2004 Fix [ 918157 ] "Could not watch the specified folders". msgstore.IsReceiveFolder() would fail on an exchange server. Tony Meyer 03/05/2004 Temporary fix for [ 941596 ] sb_imapfilter.py not adding headers / moving messages Tony Meyer 03/05/2004 imapfilter: catch any exceptions, not just email.Errors Tony Meyer 03/05/2004 NotesFilter: Incorrect (old?) function name for opening a storage object. Mark Hammond 29/04/2004 Outlook: Change the default pushbutton in the "filter now" dialog to be the start button, and make ESC work as cancel. Skip Montanaro 28/04/2004 tte.py: add -R/--reverse flag to iterate over the mailboxes in reverse Tony Meyer 25/04/2004 If the move_trained_[ham|spam]_to_folder options were used, this would wipe out the SpamBayes headers. Fix that. Tony Meyer 25/04/2004 Update message.py for the newer way that the persistent_use_database option works. Tony Meyer 23/04/2004 Fix [ 940155 ] Data Folder location Beta Release 1 ============== Kenny Pitt 07/04/2004 Fix some problems with the [851785] fix Toby Dickenson 26/03/2004 New script: sb_bnfilter - like sb_filter but without the startup overhead Tony Meyer 24/03/2004 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 23/03/2004 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 18/03/2004 Outlook: Don't record classification in stats unless all_actions is true so that rescoring messages doesn't skew the statistics counters. Skip Montanaro 16/03/2004 Change sb_dbexpimp.py to use csv as interchange format. Tony Meyer 16/03/2004 Add [ 797579 ] Disable connections to POP3 and SMTP from remote hosts Tony Meyer 16/03/2004 Fix [851785] Pop3proxy stores Ham/Spam/Unsure subject line in message cache Tony Meyer 16/03/2004 Fix [ 906581 ] Assertion failed in search subject Tony Meyer 16/03/2004 Add a note warning about [915466] Sorting review page loses classifications. Skip Montanaro 16/03/2004 Add a verbose flag to tte.py Mark Hammond 07/03/2004 Outlook: Catch all MAPI errors fetching the HTML for a message, and remove the warning about old win32all versions. Mark Hammond 04/03/2004 Outlook: set pythoncom.frozen along with sys.frozen in our nasty registration hacks Mark Hammond 27/02/2004 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 27/02/2004 Outlook: GetParent() catches MAPI errors and raises a MsgStoreException Mark Hammond 27/02/2004 Outlook: Improve speed by calling .SetColumns() before .Restrict() Skip Montanaro 26/02/2004 Add a -c flag to tte.py Tony Meyer 22/02/2004 Simplify the auto bug reports via the web interface a bit, and get the user to enter a subject. Tony Meyer 17/02/2004 Add [ 848311 ] sb_imapfilter.py obeys launch_browser Tony Meyer 17/02/2004 The service was built, but not included in the installer for 1.0a9. Fix that. Tony Meyer 16/02/2004 Fix the line wrapping in autogenerated bug reports via the web interface. Tony Meyer 16/02/2004 Fix a NameError in smtpproxy.py Tony Meyer 16/02/2004 imapfilter: Use BODY.PEEK[] instead of RFC822.PEEK. Tony Meyer 16/02/2004 imapfilter: Report time taken a little less pedantically. Tony Meyer 16/02/2004 Fix [ 737967 ] Malformed messages break pop3proxy (et al) Tony Meyer 15/02/2004 Fix half of [ 896366 ] Crashes in the web interface. Skip Montanaro 13/02/2004 tte.py: record time (in seconds) to execute each round and count the number of leftover hams and spams at the end Skip Montanaro 13/02/2004 Collect all potential MTA complaints, not just sendmail's "may be forged" (from Tim Peters). Tony Meyer 13/02/2004 Fix [ 895606 ] 1.0a9 proxy raises an X-Spambayes-Exception Skip Montanaro 12/02/2004 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 11/02/2004 Fix typo in sb_dbexpimp.py usage statement. Alpha Release 9 =============== Skip Montanaro 07/02/2004 New script - tte.py: Train to exhaustion based upon my understanding of the technique as described in Gary Robinson's blog. Tony Meyer 05/02/2004 Web interface: added a third configuration page, which dynamically has all the experimental options (not the deprecated ones). Tony Meyer 05/02/2004 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 05/02/2004 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 05/02/2004 Outlook: If the special folders can't be found, then report this to the user. Tony Meyer 05/02/2004 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 05/02/2004 imapfilter has been adding two mailid headers, so stop that. Tony Meyer 05/02/2004 Fix [ 890645 ] imapfilter: "ValueError: year out of range" Skip Montanaro 30/01/2004 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 29/01/2004 sb_mboxtrain.py: preserve modtimes in Maildir & MH mailboxes Tony Meyer 27/01/2004 Fix [ 870799 ] imap trying to fetch invalid message UID Tony Meyer 27/01/2004 Fix [ 881427 ] sb_mboxtrain.py requires -d or -D Tony Meyer 27/01/2004 Add options to ImapUI that the ProxyUI has, and also belong there. Kenny Pitt 22/01/2004 Outlook: Fix confusing error log message. Timer delay values are configured in seconds, not milliseconds. Skip Montanaro 21/01/2004 added findbest.py to contrib/ Skip Montanaro 15/01/2004 loosecksum.py: allow multiple mailboxes on the command line, not just a single message on stdin or a file containing one message Skip Montanaro 15/01/2004 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 13/01/2004 Fix [ 874784 ] Error in onReview code Skip Montanaro 13/01/2004 UserInterface: Split digest auth info properly. Simple split-on-comma fails if the uri contains commas. Barry A. Warsaw 13/01/2004 imapfilter: Catch and ignore MessageParseErrors when parsing the data['RFC822'] text. Tony Meyer 12/01/2004 Improve the messageinfo database so that more than two attributes can be saved (it's still backwards compatible with the old type). Tony Meyer 12/01/2004 Path/file options are no longer relative to the current working directory, they are relative to the last configuration file loaded. Tony Meyer 12/01/2004 pop3dnd: Store the IMAP flags. Tony Meyer 12/01/2004 pop3dnd: Fix an incorrectly checked flag (typo). Anthony Baxter 12/01/2004 New options ham_discard_level and spam_discard_level. These make the interface default to discard hams/spams in the training interface. Tony Meyer 11/01/2004 mkgraph.py: Add a docstring. Tony Meyer 11/01/2004 mkgraph.py: Add -f command line arg to pass a filename rather than reading from stdin (which is still the default) Tony Meyer 11/01/2004 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 11/01/2004 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 11/01/2004 incremental.py: Add a docstring and the ability to print it with -h or --help to incremental.py Tony Meyer 11/01/2004 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 11/01/2004 regimes.py: Add a new regime - balanced_corrected. Tony Meyer 08/01/2004 Fix [ 805852 ] need python-dev package on Debian Skip Montanaro 08/01/2004 table.py: space the table out a little more. Skip Montanaro 07/01/2004 mkreversemap.py: New script which generates a pickle file mapping features to mailbox files and message-id's. Use with extractmessages.py. Skip Montanaro 07/01/2004 extractmessages.py: New script; use with mkreversemap.py to identify messages in your training database which contain interesting tokens. Tony Meyer 07/01/2004 Fix [ 872044 ] HTTP review page date problems. Skip Montanaro 06/01/2004 Add experimental option and code to pick out some semantic bits from URLs Tony Meyer 05/01/2004 Add extra utility functions to oe_mailbox for dealing with Outlook Express. Tony Meyer 05/01/2004 Have autoconfigure confirm that configuration has occured. Tony Meyer 05/01/2004 Do better 'is installed' checks in autoconfigure. Adam Walker 05/01/2004 Start SMTP proxy in a trainable state. Tony Meyer 02/01/2003 UserInterface: Fix import error reported. Richie Hindle 01/01/2004 Default to twenty search results on web interface rather than just one. Richie Hindle 01/01/2004 Made the search form do a GET rather than a POST. Richie Hindle 01/01/2004 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 01/01/2004 New script: utilities/hammer.py: Hammers the core SpamBayes code, repeatedly training and classifying using faked-up messages. Tony Meyer 31/12/2003 pop3dnd: Fix fetching an envelope. Tony Meyer 31/12/2003 pop3dnd: Handle storing no flags. Tony Meyer 31/12/2003 pop3dnd: Update the RETR'ing of messages to reflect what sb_server currently does. Tony Meyer 31/12/2003 pop3dnd: Clean out some cruft that isn't necessary with the latest version of twisted (1.1) Tony Meyer 31/12/2003 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 31/12/2003 pop3dnd: Start our UIDs at 1, not 0, because Eudora likes this more. Tony Meyer 31/12/2003 pop3dnd: Don't override the imported name "message". Tony Meyer 31/12/2003 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 31/12/2003 pop3dnd: Don't let the user set so much via the command line. Use a config file, you lazy person. Tony Meyer 31/12/2003 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 31/12/2003 Web interface: As Richie pointed out, the status message was only updated when the state was recreated. Fix this. Tony Meyer 31/12/2003 Web interface: Output plurals correctly in stats information. Tony Meyer 31/12/2003 We printed out false positive numbers in the false negatives section, and vice versa. Fix. Tony Meyer 30/12/2003 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 29/12/2003 Web interface: Improve the 'online' help message for the review page, and add messages for the stats and home pages. Tim Peters 29/12/2003 Many improvements to the mksets.py testtools script. Tim Peters 28/12/2003 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 28/12/2003 sort+group.py: Preserve files' extensions (if any) during renaming. Tim Peters 28/12/2003 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 28/12/2003 Added a new -t option to rebal.py, may have broken -s and -r options. Tim Peters 26/12/2003 Many improvements to the rebal.py testtools script. Tim Peters 26/12/2003 Many improvements to the export.py script for Outlook. Skip Montanaro 24/12/2003 storage: make state key a manifest constant Mark Hammond 23/12/2003 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 23/12/2003 Fix uninstall problem - uninstall should be 100% clean, assuming Outlook isn't running. Mark Hammond 23/12/2003 Tray app: Binary version failed to check for most recent version. Skip Montanaro 23/12/2003 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 22/12/2003 Move OE specific stuff out from UserInterface.py to oe_mailbox.py. Mark Hammond 22/12/2003 Outlook: Default to background filtering being on for new versions. Tony Meyer 22/12/2003 Web interface: A beginning at a more userfriendly interface to the testing setup. Mark Hammond 22/12/2003 Outlook: When a frozen executable, addin.py becomes a mini-installer EXE for the DLL. Mark Hammond 21/12/2003 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 21/12/2003 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 21/12/2003 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 20/12/2003 dump_props.py: Add -c option, which writes output to the Windows clipboard. Mark Hammond 20/12/2003 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 20/12/2003 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 20/12/2003 Tokenizer: Solved the "backwards breakdown" problem with ip addresses in Received: headers. Skip Montanaro 20/12/2003 Tokenizer: Tightened up recognition of hostnames and accepted bracketed or parenthesized ip addresses without requiring a leading space. Mark Hammond 19/12/2003 Outlook: Remove handling of E_OBJECT_CHANGED exception, as it simply did not work. Mark Hammond 19/12/2003 Fix [ 803798 ] MAPI_E_OBJECT_CHANGED error saving spam score, which is a dupe of [787676], which was incorrectly marked as fixed Mark Hammond 19/12/2003 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 19/12/2003 Outlook: Move some of our init code from OnConnection to OnStartupComplete Mark Hammond 19/12/2003 Outlook: Try and tone down the toolbar message in the log to prevent people reporting it as a bug Mark Hammond 19/12/2003 Outlook: Handle situations where Outlook starts up in a confused state, which then confused us. Mark Hammond 19/12/2003 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 18/12/2003 Bring pspam into the modern SpamBayes world. Mark Hammond 18/12/2003 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 17/12/2003 Tray app: Better icons and icon loading code. Tony Meyer 17/12/2003 Add the basis of a new experimental (and highly debatable) option to 'slurp' URLs. Tim Peters 17/12/2003 Implemented the intended "tiling" version of x-use_bigrams. Tony Meyer 16/12/2003 Option names are always case insensitive, no matter what. Tony Meyer 16/12/2003 Fix a bug in the web interface where the probability would be incorrectly calculated on 'show clues'. Tony Meyer 16/12/2003 New experimental option: x-use_bigrams. Skip Montanaro 16/12/2003 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 15/12/2003 Add a warning as a temporary solution for Python bug #845560. Tony Meyer 15/12/2003 Add the missing code for the Habeas headers tokenizing (and deprecate). Mark Hammond 15/12/2003 Fix [ 833439 ] default_bayes_customize.ini is confusing. Mark Hammond 14/12/2003 Move the option loading code to a function, then call this function as the module loads. Mark Hammond 14/12/2003 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 14/12/2003 Removed support code for the defunct experimental_ham_spam_imbalance_adjustment option Mark Hammond 14/12/2003 Fix [ 856628 ] reload(Options) fails in windows binary Mark Hammond 14/12/2003 Fix [ 859215 ] "Restore Defaults" causes assertion error at exit. Tony Meyer 14/12/2003 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 10/12/2003 Loosen constraints on HEADER_VALUE regular expression. Skip Montanaro 10/12/2003 Add ability for "x-" options (deprecated, or experimental). Mark Hammond 10/12/2003 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 10/12/2003 Fix [ 856141 ] Spam field not added to unsure or empty folders Mark Hammond 08/12/2003 Outlook: Add/Fix a number of 'unicode file' related comments. Mark Hammond 08/12/2003 Outlook: Allow multiple manager objects to work in the same process (but not at the same time): Mark Hammond 08/12/2003 Outlook: A number of changes to better support us existing in the 'COM Addins' list when running the binary version Tony Meyer 04/12/2003 Tray app: Change the default (double-click) behaviour of the tray to "review messages" rather than "display information". Tony Meyer 04/12/2003 Tray app: use SetDefaultItem (so the default action is in bold in the menu). Mark Hammond 03/12/2003 For the unittest scritps avoid sys.path munging. Mark Hammond 03/12/2003 Add new test_programs unittest script and support file for unittest scripts. Mark Hammond 02/12/2003 sb_server was ignoring command-line options; fix. Richie Hindle 27/11/2003 Sjoerd's improved version of patch 831388. Neale Pickett 27/11/2003 sb_filter now prints each message only once, not once per argument :) Tony Meyer 26/11/2003 sb_dbexpimp.py: Import/Export data as utf-8. Richie Hindle 26/11/2003 UserInterface.py More robust code for parsing score headers - copes with the presence of logarithms. Richie Hindle 26/11/2003 UserInterface.py: More robust code for parsing evidence headers. Copes with ';' and ': ' being part of a clue. Richie Hindle 26/11/2003 Patch [ 831388 ]: Make message.py respect the header_score_digits option. Richie Hindle 26/11/2003 Made sb_filter obey the notate_to and notate_subject options. Tony Meyer 26/11/2003 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 26/11/2003 message.py: Encode words in the evidence header as utf-8 if they are unicode. Barry A. Warsaw 25/11/2003 sb_xmlrpcserver.py: Make sure that the socket being bound is reusable. Barry A. Warsaw 25/11/2003 Change XMLHammie.score() so that the float score is returned directly instead of trying to be wrapped in a Binary object. Barry A. Warsaw 25/11/2003 New script: sb_evoscore.py - A shim script between sb_xmlrpcserver.py and Ximian Evolution. Skip Montanaro 25/11/2003 Added a makefile to the testtools directory to make using timcv easier. Neale Pickett 18/11/2003 Cleanup sb_filter and sb_mboxtrain. Richie Hindle 16/11/2003 Patch [ 842464 ] Correct installation instructions from "setup.py install" to "python setup.py install" Skip Montanaro 13/11/2003 sb_filter: add -o/--option command line arg that allows user to set any options value from the command line Skip Montanaro 13/11/2003 OptionsClass: Add set_from_cmdline() Skip Montanaro 13/11/2003 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 11/11/2003 notesfilter: The header_x_string options now live in the Headers section, not the Hammie section. Richie Hindle 07/11/2003 Fixed an infinite loop when you break the browser connection to sb_server when sb_server is busy training. Anthony Baxter 05/11/2003 Spell-checked all the HTML and txt files Tony Meyer 30/10/2003 Implement [ 827138 ] Can't display clues/tokens/source for a trained message Richie Hindle 15/10/2003 Increased the auth-digest login timeout from one minute to twenty. Neale Pickett 15/10/2003 Modified muttrc and spambayes.el that actually work with what's being shipped :) Neale Pickett 15/10/2003 Expanded documentation of sb_filter.py Skip Montanaro 15/10/2003 which_database: fix bug in dbhash/bsddb[3] distinction and avoid overriding str Skip Montanaro 15/10/2003 which_database: need to call os.path.expanduser() since paths like ~/hammie.db are valid in the options file Mark Hammond 10/10/2003 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 08/10/2003 When training via the web interface record the training in the messageinfo db. Tony Meyer 07/10/2003 Fix [ 818871 ] sb_server.py calls undefined variable Tony Meyer 06/10/2003 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 06/10/2003 imapfilter: When we mark a message as deleted, mark it as read (seen) as well. Richie Hindle 04/10/2003 Fix the help icon to look like the rest. Tony Meyer 03/10/2003 If sb_imapfilter.py is run without any switches, just serve the web interface (but don't launch a browser). Tim Peters 03/10/2003 Outlook: Stop spam and unsure messages being double-counted in the stats. Tony Meyer 02/10/2003 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 02/10/2003 Provide a partially filled-in bug report message via the web interface. Tim Peters 01/10/2003 Round (not truncate) the stats information in the Outlook plugin. Tony Meyer 30/09/2003 Improve autoconfigure script to find the location of various config files. Tony Meyer 30/09/2003 Add basic statistics information to the web interface. Tony Meyer 29/09/2003 Add a basic help system to the web interface. Tony Meyer 29/09/2003 Add warning information to the web interface, for example if the user has imbalanced training, or not much training. Mark Hammond 29/09/2003 Don't start the pop3proxy service if a proxy is already running. Mark Hammond 29/09/2003 Outlook: Add slightly better stats, and a better framework to extend. Skip Montanaro 26/09/2003 Dump TRAINED_HDR global. Reference options[...] instead. Mark Hammond 25/09/2003 Add patch [ 809008 ] safe start/stop and exclusive execution on windows Tony Meyer 24/09/2003 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 24/09/2003 pop3proxy_tray: Check if the web interface port can be bound as a simple test of if the proxy is running. Tony Meyer 20/09/2003 smtpproxy is now only a module, not a script. Use sb_server instead. Tony Meyer 20/09/2003 Consolidate some of the many message classes - in particular Corpus.Message is removed in favour of message.Message Tony Meyer 20/09/2003 Improve the 'Find Message' query on the front page of the web UI. Tony Meyer 20/09/2003 Add an advanced word query to the web UI. Tony Meyer 20/09/2003 Make the review messages page on the web UI more customizable. Alpha Release 8 =============== There is no Alpha Release 8. Alpha Release 7 =============== Skip Montanaro 28/10/2003 Determine dbm format from the file if it already exists Tony Meyer 09/10/2003 An old-style option was left in hammiebulk; fix this. Tony Meyer 08/10/2003 If the (stats) db uses a pickle, then use a pickle for the messageinfo db as well. Tony Meyer 08/10/2003 Try and close the db when we are no longer using it. Tony Meyer 08/10/2003 Ensure that we store the messageinfo database when changes are made. Tony Meyer 07/10/2003 Fix [ 818552 ] Exchange 2000 IMAPserver & imaplib.error: APPEND command er Tony Meyer 06/10/2003 Trivial fix for IMAP over SSL being offered when it is available. Tony Meyer 03/10/2003 Fix [ 810342 ] sb_smtpproxy does not work with smtplib.SMTP.sendmail() Tony Meyer 03/10/2003 Fix [ spambayes-Bugs-816400 ] Crash because of bad date. Sjoerd Mullender 02/10/2003 imapfilter: if problems occur parsing the date, just use the current date/time. Tony Meyer 30/09/2003 Fix [ 814322 ] AttributeError: hdrtxt Tony Meyer 29/09/2003 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 29/09/2003 smtpproxy: Fix a minor printing error that would cause a traceback. Tony Meyer 29/09/2003 imapfilter: Fix trying to view IMAP folders before restarting and after entering in details. Tony Meyer 28/09/2003 Don't use 'pragma: no_cache' to try and stop browsers caching the web interface pages. Skip Montanaro 26/09/2003 Correct sense of include_trained test in mbox_train. Tony Meyer 26/09/2003 If the user is using Windows, also install pop3proxy_service.py and pop3proxy_tray.py. Tony Meyer 24/09/2003 Fix sb_xmlrpcserver to work with the renamed options/scripts. Tony Meyer 24/09/2003 Fix [ 809769 ] TypeError when training 1.0a6 Alpha Release 6 =============== Skip Montanaro 19/09/2003 Worm around a possible email pkg bug. Skip Montanaro 19/09/2003 hammiebulk & mboxtrain: Minor performance boost when training on lots of mail. Skip Montanaro 19/09/2003 Place a threshold on the number of items displayed per section in the review page of the UI. Tony Meyer 18/09/2003 Change the Outlook plug-in to use the general default (currently False) for the experimental_ham_spam_imbalance adjustment. Tony Meyer 18/09/2003 Change the default for address_headers to include to, cc, reply-to, and sender as per Tim's suggestion. Tony Meyer 18/09/2003 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 18/09/2003 If we can't find a config file anywhere but the windows app data directory, then load it. Tony Meyer 18/09/2003 Use urllib not urllib2 to shut down the proxy. Tony Meyer 18/09/2003 Create the server strings for the UI *after* reading in the command line parameters. Tony Meyer 18/09/2003 Move notate_to and notate_subject options to the "Headers" section. Tony Meyer 18/09/2003 Move all the storage options in the "pop3proxy" section to the "Storage" section. Tony Meyer 18/09/2003 Remove the hammie debug options, and use the "Headers" evidence options instead. Tony Meyer 17/09/2003 Fix [ spambayes-Bugs-806632 ] sb_server failure when saving config Tony Meyer 17/09/2003 Outlook: Add a warning for those with highly (>5 times) imbalanced ham and spam. Mark Hammond 17/09/2003 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 17/09/2003 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 16/09/2003 Fix [ 795145 ] pop3proxy review page dies with mixed gzip/non messages Mark Hammond 15/09/2003 Outlook: Load dialog bitmaps directly from the executable in binary builds. Adam Walker 15/09/2003 Updated pop3proxy_tray to support the service. Tony Meyer 15/09/2003 Removed the gary_combining option and code. Tony Meyer 15/09/2003 Add a (basic) check for version option to the pop3proxy tray app. Tim Peters 15/09/2003 Fix SF bug 806238: urllib2 fails in Outlook new-version chk. Tim Peters 15/09/2003 Outlook: ShowClues(): Made the clue report a little prettier, and (I hope) a little easier to follow. Tony Meyer 13/09/2003 Fix [ 805351 ] If cc: address is not qualified, proxy fails to send message Mark Hammond 12/09/2003 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 12/09/2003 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 12/09/2003 pop3proxy_tray: When running from binary, load the icon from the executable rather than a .ico file. Tim Peters 12/09/2003 Outlook: ShowClues(): Add lines revealing the # ham and spam trained on. Tony Meyer 11/09/2003 When running setup.py if the old (named) files exist, offer to delete them. Tony Meyer 11/09/2003 Add a unittest to check that we correctly fail when no dbm modules are available. Anthony Baxter 11/09/2003 Add a new file: NEWTRICKS.TXT to record ideas that have and haven't been tried. Richie Hindle 11/09/2003 Bug 803501: Fix the "No dbm modules available" message to print rather than crash. Skip Montanaro 11/09/2003 Implement a better fix for the storage.py pickle/dbm problems. Mark Hammond 10/09/2003 Outlook: use the classifier's (new) store method rather than an Outlook specific one. Tony Meyer 10/09/2003 Re-fix storage.py so that hammie works with a pickle or dbm. Tony Meyer 09/09/2003 Fix for [ 802545 ] crash when logging off imapfilter UI Tony Meyer 09/09/2003 Fix for [ 802347 ] multiline options saved incorrectly Tony Meyer 09/09/2003 Implement half of [ 801699 ] migration from hammie to sb_* scripts (although in a different way) Tony Meyer 09/09/2003 sb_server should store and close the db before reopening it. gdbm fails if we do not do this. Fix this. Tony Meyer 09/09/2003 imapfilter: correctly handle IMAP servers that (wrongly) fail to put folder names in quotation marks Mark Hammond 09/09/2003 Add a close method to the various storage classes. Sjoerd Mullender 08/09/2003 Fix for [ 801952 ] Imapfilter appending headers Sjoerd Mullender 08/09/2003 imapfilter: Count all messages being classified instead of just the ones from the last folder. Sjoerd Mullender 08/09/2003 Trivial fix for IMAP over SSL. Tony Meyer 08/09/2003 imapfilter: handle a folder name as a literal when presenting a list to choose from Tony Meyer 08/09/2003 imapfilter: handle IMAP servers that don't pass a blank result line for an empty search Mark Hammond 08/09/2003 Outlook: When we fail to add the 'Spam' field to a read-only store (eg, hotmail), complain less loudly. Mark Hammond 08/09/2003 Fix [ 798362 ] Toolbar becomes unresponsive and must be recreated Tony Meyer 06/09/2003 Add a missing file that's necessary to try out the sb_pop3dnd.py script, and the version and options necessary. Tony Meyer 06/09/2003 Fix [ 800555 ] 1.0a5 release missing key outlook files. Tony Meyer 05/09/2003 Remove backwards compat code for options, and update all (I hope) the remaining code that uses it. Tony Meyer 05/09/2003 Move and rename all top-level scripts other than setup.py Alpha Release 5 =============== Tony Meyer 03/09/2003 imapfilter: We would crash if we hadn't set anything up and didn't prompt for password. Adam Walker 03/09/2003 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 02/09/2003 Add a rough autoconfigure script, which will set up both spambayes and a mail client to use pop3proxy Richie Hindle 01/09/2003 Fix [ 797890 ] "assert hamcount <= nham" problem. Tony Meyer 01/09/2003 Fix [ spambayes-Bugs-796996 ] SMTP server not started until restart. Richie Hindle 01/09/2003 Integrated [ 791393 ] HTTP Authentication, which closes #791319. Tony Meyer 01/09/2003 Added [ 796832 ] Word query should show all words starting with certain text Tony Meyer 01/09/2003 Fix for [ 797316 ] Extra CRLF to SMTP server causes garbage error. Richie Hindle 31/08/2003 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 31/08/2003 X-Spambayes-Exception headers now contain a traceback as well as the exception. Richie Hindle 29/08/2003 Fix the yellow colour of the header boxes in the web interface in strict browsers (i.e. not IE ;) Tony Meyer 28/08/2003 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 27/08/2003 Outlook: all menu sub-items are now temporary. Mark Hammond 27/08/2003 Fix [ 776808 ] Expanding toolbar crashes outlook Mark Hammond 27/08/2003 Outlook: ensure we only try and use tree items listed as valid by the mask. Mark Hammond 27/08/2003 Fix [ 795749 ] "Score after training" doesn't in CVS Mark Hammond 27/08/2003 Outlook: add 'View Log' button to the Diagnostics dialog. Tony Meyer 26/08/2003 Fix restoring defaults from the web interface. Tony Meyer 26/08/2003 Implement [ 791254 ] Advanced configuration panel. Tony Meyer 26/08/2003 smtpproxy: don't convert unknown commands to upper case as this mucks about with passwords, which might be case sensitive. Richie Hindle 26/08/2003 Fixed [ 787251 ] Problem refreshing message list and [ 790051 ] Can't review messages. Richie Hindle 26/08/2003 Added a missing line break in the status pane on the Home page when there are no proxies configured. Richie Hindle 26/08/2003 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 26/08/2003 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 26/08/2003 Fix [ 779319 ] ntpath Unicode error Mark Hammond 26/08/2003 Outlook: default folder names used by the Wizard are now "Junk E-Mail" and "Junk Suspects" Mark Hammond 26/08/2003 Outlook: the experimental 'timers' options got upgraded to the 'filter' section. Adam Walker 26/08/2003 Outlook: added button on advanced tab to display the spambayes data folder. Adam Walker 26/08/2003 Outlook: move Filter Now to a separate dialog invoked by the drop down menu on the toolbar. Tony Meyer 25/08/2003 Fix some old option names. Tony Meyer 25/08/2003 Change the notate_to and notate_subject options to notate for spam, unsure, ham, or any combination (including none) thereof. Tony Meyer 25/08/2003 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 25/08/2003 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 25/08/2003 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 25/08/2003 Fix [ 785389 ] Folders missing in Spambayes manager. Mark Hammond 25/08/2003 Fix [ 786952 ] Error when profile name has invalid filename characters. Mark Hammond 25/08/2003 Outlook: We now work with "IPM.Note" and "IPM.Anti-Virus*" Mark Hammond 25/08/2003 Outlook: Fail when we can't find a default message store. Mark Hammond 25/08/2003 Fix "[ 788495 ] Filter fails when folder full" Mark Hammond 25/08/2003 Outlook: remove last win32ui dialog. Mark Hammond 25/08/2003 Outlook: change default filter action to "move" Mark Hammond 25/08/2003 Outlook: don't score if the training was canceled. Mark Hammond 25/08/2003 Outlook: present the wizard when required. Mark Hammond 25/08/2003 Outlook: allow filtering to be enabled, even if no training information! Tony Meyer 23/08/2003 Add [ 789916 ]. Outlook Express .dbx files can now be used to train, just like mbox files. Mark Hammond 23/08/2003 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 23/08/2003 An empty 'allowed values' now allows an empty string. Mark Hammond 23/08/2003 Outlook: add a "New Folder" button to the folder selector dialog. Mark Hammond 20/08/2003 Outlook: add wizard dialogs. Tony Meyer 19/08/2003 Implement [ 790615 ] Allowed remote connections management, which addresses [ 698036 ] pop3proxy security Tony Meyer 19/08/2003 Allow @ and = in paths. Adam Walker 19/08/2003 Outlook: add a Wizard framework. Adam Walker 19/08/2003 Outlook: add a diagnostic dialog. Adam Walker 18/08/2003 Fix [ 790406 ] Allow the timers to be set in half second increments. Mark Hammond 18/08/2003 Improve the starting/stopping of the pop3proxy service Adam Walker 18/08/2003 Outlook: change the manager dialog to a tabbed interface, and add a logo to it. Tony Meyer 18/08/2003 Allow the pop3proxy_service to start smtpproxy as well Tony Meyer 18/08/2003 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 16/08/2003 which_database.py: Make the script a little smarter about checking if bsddb[3] is available. Tony Meyer 14/08/2003 Fix [ spambayes-Bugs-788008 ] smtpproxy.py assumes too good format for addresses Tony Meyer 14/08/2003 Implement patches from [ 788001 ] mboxtrain.py Maildir bugfix and feature Tony Meyer 14/08/2003 Fix [ 787296 ] Local installation problem: hammiefilter_persistent_storage Tony Meyer 14/08/2003 Fix [ 788002 ] hammiebulk.py uses wrong option name Tony Meyer 13/08/2003 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 13/08/2003 Add a simple n-way classifier using a cascade of binary SpamBayes classifiers Tony Meyer 12/08/2003 Web interface: At some point (before the 1.0a4 release) selecting both "header" and "body" stopped working. This fixes that. Tony Meyer 12/08/2003 Have the review messages page put the unsure messages at the top, because they are the most important to take action on Mark Hammond 11/08/2003 Outlook: SpamClues shows the percentage as well as the raw score. Adam Walker 09/08/2003 Outlook: Added website links to the help menu. Adam Walker 09/08/2003 Use the Tahoma font in the Outlook dialogs. Mark Hammond 09/08/2003 Fix [ 780612 ] Outlook incorrectly trains on moves messages. Mark Hammond 08/08/2003 Fix bug [ 784323 ] Plug-in will not initialize/watch in offline mode Tony Meyer 07/08/2003 Add a mySQLClassifier class Skip Montanaro 07/08/2003 Add a postgreSQL classifier class, and a base SQLClassifier class Tony Meyer 07/08/2003 Remove dumbdbm from the config options Skip Montanaro 07/08/2003 Remove dumbdbm from the possible dbm storage options Tony Meyer 07/08/2003 Fix [ 784296 ] imapfilter broken with Python 2.3 Adam Walker 06/08/2003 Outlook: move the html menu options to a Help sub-menu. Mark Hammond 06/08/2003 Fix [ 780819 ] Images pasted to clipboard each startup Mark Hammond 04/08/2003 Add a get_option method, so an option instance itself can be fetched. Mark Hammond 04/08/2003 Outlook: new data driven dialogs loaded from Windows .rc scripts. Mark Hammond 04/08/2003 Outlook: add a resource script parser, by Adam Walker. Mark Hammond 01/08/2003 Outlook: fix [ 780801 ] IMAP Still Failing - GetField() returns None on MAPI error Mark Hammond 30/07/2003 Outlook: avoid passing a float to C functions that take an int (the slider pos) Mark Hammond 29/07/2003 Fix [ 779049 ] email.Errors.HeaderParseError: Continuation line seen ... Mark Hammond 29/07/2003 Outlook: change the way we detect 'unsent' items - this way catches both unsent items, and copies of sent items. Mark Hammond 29/07/2003 Outlook: add ability to check for the latest version. Mark Hammond 29/07/2003 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 29/07/2003 Support fetching the "latest" set of version data from the spambayes web site. Richie Hindle 28/07/2003 Made the pop3proxy work with fetchmail. Mark Hammond 28/07/2003 Outlook: Add a new experimental 'timer'. Mark Hammond 26/07/2003 Outlook: Log the binary version in the binary. Mark Hammond 25/07/2003 Fix locale issues in Outlook - fixes [ 765912 ] AssertionError: Proportions must add to 1.0 ... Tim Peters 25/07/2003 Fix SF bug 777026: Possible cause for db corruption in DBDictClassifier. Mark Hammond 25/07/2003 Created a directory & readme for test suites, including a storage.py test. Tony Meyer 25/07/2003 [ 777165 ] Typo in Options.py causes bogus warning on reading config Mark Hammond 23/07/2003 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 23/07/2003 Outlook: fix a problem where multipart/signed messages could still screw us. Mark Hammond 23/07/2003 Fix [ 693387 ] user-composed messages are filtered. Mark Hammond 23/07/2003 Outlook: Check the message flag for the "unsent" bit. Richie Hindle 22/07/2003 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 21/07/2003 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 21/07/2003 Outlook: While we are printing versions, Python gets a go. Mark Hammond 21/07/2003 Fix 690418: Non mail items filtered by Outlook Mark Hammond 21/07/2003 Fix 719586: Cannot View Spam Cues for Undeliverable Reports Mark Hammond 21/07/2003 Outlook: Add IsFilterCandidate() method to a message object to determine if this is a message we should try and filter. Mark Hammond 21/07/2003 Outlook: Rationalize code that creates a message object. Mark Hammond 21/07/2003 Outlook: Ignore errors when enumerating stores. Mark Hammond 21/07/2003 Outlook: Work better with a unicode data directory. Mark Hammond 21/07/2003 Outlook: Add a new filter option - "save_spam_info", default=True. Mark Hammond 20/07/2003 Fix [ 769346 ] Problems after deleting certain spam folder as implemented in [ 769981 ] Outlook plugin: allow user to change spam and unsure. Mark Hammond 20/07/2003 pop3proxy_service: log exceptions if the server thread dies unexpectedly. Mark Hammond 20/07/2003 Fix [ 761499 ] pop3proxy_service doesn't stop when shutdown from browser. Mark Hammond 20/07/2003 Fix [ 769346 ] Problems after deleting certain spam folder as implemented in [ 769981 ] Outlook plugin: allow user to change spam and unsure. Mark Hammond 19/07/2003 pop3proxy_service: Redirect output to win32traceutil (for want of a better place) Richie Hindle 19/07/2003 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 18/07/2003 Fix [ 773452 ] Unable to use fractional number as spam_threshold. Richie Hindle 18/07/2003 pop3proxy: "ASCII decoding error" problem fixed. Skip Montanaro 15/07/2003 dbmstorage: trivial hack to give dumbdbm a sync() method (which Shelve will call) and hopefully reduce database corruption Mark Hammond 09/07/2003 Outlook: Include the Windows version in the log. Mark Hammond 09/07/2003 Outlook: Use the passed field name rather than hardcoded "Spam". Mark Hammond 09/07/2003 Fix 765042: IMAP mail fails to filter Tony Meyer 09/07/2003 Allow $ in pathnames, which fixes [ 768162 ] UNC path for data_directory? Tony Meyer 09/07/2003 mboxtrain: Use /tmp/ as the temp directory, not /cur/tmp or /new/tmp. Fixes [ 768221 ] v1.0a4 dies when training on Maildir Mark Hammond 08/07/2003 Fix [ 760062 ] Traceback untraining a single message - typo in assert. Tony Meyer 08/07/2003 hammiebulk: a belated patch to account for the default persistent_storage_file option changing. Richie Hindle 07/07/2003 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 07/07/2003 Prevent the "Show clues" links on the web UI's training page from word-wrapping and making all the table rows two lines high. Alpha Release 4 =============== Tony Meyer 04/07/2003 Fix SF#761677 ("mboxtrain.py's -n option has no effect") Richie Hindle 03/07/2003 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 03/07/2003 Fix a bug in pop3proxy where long attachments would be broken. Richie Hindle 02/07/2003 If an exception occurs parsing a message in pop3proxy, append an 'exception' header to the message and recover. Richie Hindle 02/07/2003 Stop the pop3proxy including the trailing . when passing messages to the email package. Mark Hammond 01/07/2003 Version 003 of the binary. Mark Hammond 01/07/2003 In outlook plugin, display a message for "Delete as Spam" or "Recover from Spam" when SpamBayes is not enabled. Skip Montanaro 01/07/2003 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 01/07/2003 In Outlook plugin, toolbar was not initialized when "Outlook Today" was the default view. Mark Hammond 30/06/2003 In Outlook plugin, don't (try to) do OnStartupComplete work if OnConnection failed. Mark Hammond 30/06/2003 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 28/06/2003 A new stripper to squash yet another way of hiding content in HTML spam, like Ereywl55ctions to hide Erections. Tim Peters 27/06/2003 In storage.py store(): If a Shelf db doesn't have a key, then "del db[key]" should raise KeyError. Tim Peters 27/06/2003 In storage.py store(): Use iteritems() instead of items() to materialize the changed_words guts. Tim Peters 27/06/2003 In storage.py, check WORD_CHANGED and WORD_DELETED with is not ==. Tim Peters 27/06/2003 Remove a superstitious check for None in storage.py (_wordinfoset()). Tim Peters 27/06/2003 Fix a bug in storage.py (_wordinfoget()) which could cause incorrect token counts. Tony Meyer 23/06/2003 In imapfilter, try to append without flags if appending fails. Tony Meyer 23/06/2003 Implement SF#755098 - "Progress Indicator in imapfilter" Tony Meyer 23/06/2003 Fix the -i switch in imapfilter. Barry Warsaw 22/06/2003 Don't try and get password from options if -p is specified in imapfilter. Barry Warsaw 22/06/2003 Fix an import error in imapfilter. Alpha Release 3 =============== Tony Meyer 22/06/2003 Fix RFC822.PEEK error in imapfilter. Neale Pickett 21/06/2003 "In hammiefilter, make untrain mode work." Mark Hammond 20/06/2003 "In Outlook plugin, add a 'verbose' option to the options." Mark Hammond 19/06/2003 "In Outlook plugin, change ""Anti-Spam Manager"" -> ""SpamBayes Manager""" Mark Hammond 18/06/2003 "In Outlook plugin, allow either spam or unsure messages to be marked as read as they are filtered." Mark Hammond 18/06/2003 "In Outlook plugin, more work on the toolbar." Mark Hammond 17/06/2003 2 new [General] options for Outlook plugin - delete_as_spam_message_state and recover_from_spam_message_state. Mark Hammond 17/06/2003 "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 17/06/2003 "In Outlook plugin, catch the assertion error in the classifier, and warn the user their database is corrupt." Mark Hammond 17/06/2003 "In Outlook plugin, introduce ReportErrorOnce, useful for errors on event handlers that you don't want to bombard the user with." Mark Hammond 17/06/2003 "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 17/06/2003 "In Outlook plugin, DeleteAsSpam didn't detect ""no folder"" correctly." Anthony Baxter 17/06/2003 "In IMAPFilter interface, fix parm_map code." Mark Hammond 16/06/2003 Split OptionsClass into a separate file. Mark Hammond 16/06/2003 Allow lists to be used for multi-valued options. Mark Hammond 16/06/2003 "Allow the first entry in the ""defaults"" table to be a sub-class of Option." Mark Hammond 16/06/2003 "In Outlook plugin, when training, instead of suggesting the inbox, suggest folders we watch." Mark Hammond 16/06/2003 "In Outlook plugin, change ""Anti-Spam"" on the dropdown to ""SpamBayes""" Mark Hammond 16/06/2003 "In Outlook plugin, huge changes to configuration. No longer use a pickle, but instead a series of .INI files." Tony Meyer 12/06/2003 Update pop3proxy and imapfilter to print out version information. Skip Montanaro 10/06/2003 Correction to VM mailer addition to spambayes.el Tony Meyer 8/06/2003 "Add pop3proxy, hammie, smtpproxy & imapfilter version information." Neale Pickett 6/06/2003 Integrated code for the VM mailer into spambayes.el Mark Hammond 5/06/2003 Add a version information repository. Mark Hammond 5/06/2003 Change Outlook plugin to use new version information repository. Mark Hammond 4/06/2003 "In Outlook plugin, no longer default to the ""Inbox"" (see also SF#741797 ('Does not filter incoming mail'))." Mark Hammond 4/06/2003 "In Outlook plugin, when filtering, saving the spam score is no longer fatal." Tony Meyer 4/06/2003 "In muttrc, fix incorrect Spambayes header name." Mark Hammond 3/06/2003 Handle malformed messages better in the Outlook plugin. Mark Hammond 3/06/2003 "In Outlook plugin, create our own toolbar, rather than using the standard one." Mark Hammond 3/06/2003 Fix an Outlook plugin error that would try to save the database when classifying. Mark Hammond 3/06/2003 "Make Outlook plugin log refer to ""Spambayes"" rather than ""SpamAddin""" Mark Hammond 3/06/2003 Use 'wait' cursor when incremental training in Outlook plugin. Mark Hammond 3/06/2003 "In Outlook plugin, save config when dialog closes and not at shutdown." Mark Hammond 3/06/2003 Clean up toolbar images. Tony Meyer 30/05/2003 Added URL slurper. Mark Hammond 29/05/2003 "DB classifier keeps a list of ""changed words"" to prevent saves from updating *all* words." Mark Hammond 29/05/2003 DB classifier doesn't cache hapaxes. Tony Meyer 26/05/2003 Fix SF#737986 ('Message.as_string() fails.'). Tony Meyer 26/05/2003 Restore notate_to and notate_subject functionality to pop3proxy. Tony Meyer 25/05/2003 Expose experimental ham/spam imbalance option to pop3proxy/imapfilter users Tim Peters 25/05/2003 Restore __slots__ declaration to WordInfo object in classifier.py Tim Peters 25/05/2003 PickledClassifier.load(): use getstate/setstate to copy the state. Tony Meyer 21/05/2003 Cosmetic changes to pop3proxy and imapfilter interface. Tony Meyer 21/05/2003 "Remove the ""account for string nham/nspam"" code in classifier." Tim Peters 19/05/2003 Catch BoundaryError when parsing messages. Tim Peters 19/05/2003 Improve tokenisation for messages that have text that looks like Wrinkle Reduction Tim Peters 19/05/2003 Decode numeric character entities in html. Tim Peters 19/05/2003 Replace

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