Share

SpamBayes anti-spam

File Release Notes and Changelog

Release Name: 1.1a1

Notes:
This file covers the major changes between each release.  For more details,
the reader is referred to the changelog (CHANGELOG.TXT in the main directory
of the source archive), or for extreme details, to the check-ins archive
(see <http://mail.python.org/pipermail/spambayes-checkins>).
                                                                   
Changes are broken into sections, so that it's easier for you to find the
changes that are relevant to you.

Any actions necessary to move to this release from the previous release are
noted in the "Incompatible changes and Transitioning" section.

Note that this is an alpha release, intended for those willing to try out
very cutting edge software.  It is likely that there are a few unresolved
bugs with this release.  If you would rather wait for a more stable release
to have the new features here, please continue to use 1.0.4 until 1.1 final
is released.

New in 1.1 Alpha 1
==================


--------------------------------------------
** Incompatible changes and Transitioning **
--------------------------------------------

There should be no incompatible changes (from 1.0.2) in this release.
If you are transitioning from a version older than 1.0.2, please
read the notes in the previous release notes (accessible from
<http://sourceforge.net/project/showfiles.php?group_id=61702>).


-------------------
** Other changes **
-------------------

General
-------
 o Localisations (translations of the user interface) of SpamBayes are
   now available.  1.1 includes French and Spanish translations - many
   thanks to the translators for their efforts.  If you would like to
   add a translation in a new language (or dialect), please contact the
   SpamBayes development team at spambayes-dev@python.org.  For Windows
   users, SpamBayes will use the same language as the operating system
   is set to use (if available).  This can be overridden (or set, for
   non-Windows users) via the configuration file.
 o The version number scheme has been improved and simplified.
 o Many more unittests have been added.  For the end user, this should
   mean that changes in later versions are much less likely to break
   existing functionality.
 o New storage types are available: CDBClassifier (uses a CDB database,
   similar to that used by CdbClassifier, but not identical),
   ZODBClassifier (uses a ZODB FileStorage object) and ZEOClassifier
   (connects to a ZEO server).
 o The "use bigrams" option is no longer experimental, although is still
   off by default.

Outlook Plugin
--------------
 o The Manager dialog is enlarged (at least 800x600 resolution is needed
   to view it - 640x480 users will need to continue with 1.0.2) and
   enhanced to (among other things) include a new "Statistics" tab.
 o The "Show Clues" message is enchanced.  This now includes information
   about the last time the message was trained or classified.
 o For messages received from a local Exchange server, which have no
   Internet headers, we now generate more (and better) headers from the
   available message properties.
 o Statistics are vastly improved.  More statistics are reported, and
   these are persistent across Outlook sessions.  The statistics may
   be 'reset' so that they are calculated from a specified date and time.
 o Enable movement/copying of ham (good) messages, like the existing
   functionality for unsure/spam messages.
 o The "Delete As Spam" button is now simply "Spam", and the
   "Recover From Spam" button simply "Not Spam".  The behaviour of
   the buttons has not changed.
 o Notification sounds can now be set, via the Manager dialog.
 o The SpamBayes menu now includes an "Empty Spam Folder" option.
 o Outlook users can now use a variety of different underlying database
   storage methods, in the same fashion as non-Outlook users.

POP3 Proxy (sb_server.py)
-------------------------
 o POP over SSL is partially available.  The connection from the mail
   client to sb_server still cannot be over SSL, but the connection
   from sb_server to the mail server can be.  The latter is more likely
   to be at risk (as it is more likely to be non-local), so is the
   more important, as well as the easier to implement.
 o "Subject" (and "To") notations are removed from messages before display
   in the review pages and before training such messages.
 o The "To" header notations are in a new form, which is correctly an
   email address.
 o A particular type of malformed message (one with no header-body
   separator) would pass through SpamBayes without classification, or
   a X-Spambayes-Exception header.  This is no longer the case.
 o If you run sb_server as a Windows service messages are now logged
   to the Windows Event log rather than to SpamBayes log files.
 o Installation of the Windows service for sb_server has been improved,
   and a better data directory is now used (if a configuration file
   does not already exist, then a "SpamBayesData" directory in the
   directory of the application is used).

Web interface (sb_server.py and sb_imapfilter.py)
-------------------------------------------------
 o Improve the "More Statistics" page.  More statistics are reported, and
   the statistics may be 'reset' so that they are calculated from a
   specified date and time.
 o A new option "Use bigrams" is available from the Advanced Configuration
   page.
 o Messages that are uploaded (from the "Upload" box on the main page,
   or via sb_upload.py) are now properly added to the cache directories,
   and _pop3proxyham.mbox and pop3proxy_spam.mbox are no longer created.
 o Various minor fixes and improvements.

IMAP Filter (sb_imapfilter.py)
------------------------------
 o Use the "Message-ID" header as the SpamBayes ID (when possible).  This
   means that the IMAP filter should not need to rewrite nearly as many
   messages (hopefully, should need to rewrite no ham messages), and should
   also work faster and more reliably.
 o A ham folder may now be specified, like the spam and unsure folders.
 o Continue on (skipping) if a folder is unable to be acccesed for training
   or filtering.
 o Filtering multiple servers with a single sb_imapfilter process is now
   supported.  Enter in the server names, separated by commas, and the
   usernames and passwords separated by '\'s.  The filter will also try
   and load a configuration file for each server (it will look in the
   same directory as the main configuration file, for a file called
   server.name.ini or .spambayes_server_name_rc), where you can change
   the folders to filter, the thresholds, or any other options (this
   currently does not include the database names).
 o AUTH CRAM-MD5 authentication is now supported, in addition to plaintext
   AUTH Login.
 o Many minor fixes and improvements.

sb_pop3dnd.py
-------------
Many improvements.  Should now be useable.  Binary now included.  Tray
app now included.
 o Spam classification and spam training have been separated out into
   separate folders.
 o No longer uses the web interface.  Configuration is available via
   a dialog, training is via drag and drop between IMAP folders, and
   information is provided in the "Inbox" IMAP folder.

New
---
 o Andrew Dalke's sb_culler.py script (an updated version) is now
   included in the source distribution.
 o The new hammie2cdb.py script converts standard spambayes.Storage
   databases into cdb databases usable by CdbClassifier.
 o The new postfixproxy.py script is a proxy filter for use with
   PostFix 2.1's content filter functionality.
 o The new pycksum.py script is a fuzzy checksum program.
 o The new showclues.py script outputs to stdout a 'show clues' report like
   the one that Outlook creates, with the clues, tokens and message stream.

Other
-----
 o The sb_upload.py script's help string has been improved, and the
   -n (--null) command line option now works.  The script is now also
   able to train as well as upload.
 o The tte.py script has had many improvements, including Python 2.3
   compatibility, addition of a --ratio flag, deletion of correctly
   scoring messages, an improved scoring algorithm, and improved
   detection of whether a message is a miss or not.
 o A version of sb_bnfilter that is implemented in C (for speed) is
   now available.


Reported Bugs Fixed
===================
The following bugs tracked via the Sourceforge system were fixed:
  1078923, 1022848, 831864, 922063, 1051081, 903905, 1036601, 790757,
  944109, 959937, 943852, 941639, 986353, 990700, 933473, 981970, 1071319,
  1166146, 1175439

A URL containing the details of these bugs can be made by appending the
bug number to this URL:
http://sourceforge.net/tracker/index.php?func=detail&group_id=61702&atid=498103&aid=


Feature Requests Added
======================
The following feature requests tracked via the Sourceforge system were added
in this release:
870524, 940547, 715248, 938992, 1039057, 909088, 887984, 753708, 848365,
1144670, 1122067

A URL containing the details of these bugs can be made by appending the
bug number to this URL:
http://sourceforge.net/tracker/index.php?func=detail&group_id=61702&atid=498103&aid=


Patches integrated
===================
The following patches tracked via the Sourceforge system were integrated for
this release:
1052816, 962693, 831941, 858925, 800671, 1169939

A URL containing the details of these bugs can be made by appending the
bug number to this URL:
http://sourceforge.net/tracker/index.php?func=detail&group_id=61702&atid=498103&aid=


Deprecated Options
==================

No options are currently deprecated.


Experimental Options
====================

We would like to remind users about our set of experimental options.  These
are options which we believe may be of benefit to users, but have not been
tested throughly enough to warrent full inclusion.  We would greatly
appreciate feedback from users willing to try these options out as to their
perceived benefit.  Both source code and binary users (including Outlook)
can try these options out.

More information about the experimental options and how to enable them
can be found at:
  http://spambayes.org/experimental.html

If you have any queries about the experimental options, please email
spambayes@python.org and we will try and answer them.
                                                          
Experimental options that are currently available include:
  o [Tokenizer] x-search_for_habeas_headers
  o [Tokenizer] x-reduce_habeas_headers
    These generate tokens based on the Habeas headers (see
    <http://habeas.com> for more details).
  
  o [URLRetriever] x-slurp_urls
  o [URLRetriever] x-cache_expiry_days
  o [URLRetriever] x-cache_directory
  o [URLRetriever] x-only_slurp_base
  o [URLRetriever] x-web_prefix
    If these are used, if a message is scored as 'unsure', and could use
    more tokens in its classification, then text from any URLs in the
    message is retrieved and used, if it makes a difference to the
    classification.

  o [Tokenizer] x-pick_apart_urls
    Pick out some semantic bits from URLs.

  o [Tokenizer] x-fancy_url_recognition
    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.


Changes: [Note that all dates are in English, not American format - i.e. day/month/year] Release 1.1a1 ============= Tony Meyer 06/04/2005 sb_server: fix specifying server:port on command line Tony Meyer 06/04/2005 Fix [ 1176998 ] sb_server ignores parameter -l Tony Meyer 06/04/2005 sb_server and sb_imapfilter: Record session statistics correctly. Tony Meyer 06/04/2005 Outlook: Add a faked up Received header if the only headers are MS Mail Internet Transport ones and it doesn't already have one. Tony Meyer 04/04/2005 Fix [ 1175439 ] UnicodeEncodeError raised for bogus Content-Type header Tony Meyer 01/04/2005 When training, have sb_filter honour the Headers:include_trained option. Tony Meyer 29/03/2005 Installer: Optionally install imapfilter. Tony Meyer 29/03/2005 Installer: Optionally install the plug-in for all users. Tony Meyer 29/03/2005 Installer: Use a custom tasks page to handle the more complicated tasks we have now. Tony Meyer 29/03/2005 imapfilter: Don't mangle from lines. Tony Meyer 29/03/2005 message.py: Expose the mangle_from option for flattening message objects. Tony Meyer 29/03/2005 Tray App: Add Help menuitem, which at the moment just opens up the troubleshooting guide. Tony Meyer 29/03/2005 Service: Don't log to text files, but to the service log. Tony Meyer 29/03/2005 Service: Work around a problem that occurs if thetre is a zlib.dll in the SYSTEM32 directory. Tony Meyer 29/03/2005 Service: When installing, create a directory for the data, unless there is already a configuration file. When running, if this directory exists, then use it. Tony Meyer 29/03/2005 Fix [ 1166146 ] Tokenizer fails on bad URL Tony Meyer 29/03/2005 Add [ 1169939 ] Make sb_imapfilter use CRAM MD5 authentication Skip Montanaro 18/03/2005 Update sb_unheader.py to avoid depreciated function. Tony Meyer 16/03/2005 Optionally load configuration file for each imap server. Tony Meyer 16/03/2005 Allow an OptionClass object to set and restore from a particular point. Tony Meyer 16/03/2005 UserInterface.py: Upload messages properly. Tony Meyer 16/03/2005 FileCorpus.py: Move test code out into the unit test scripts. Tony Meyer 16/03/2005 FileCorpus.py: Change FileMessage from being a subclass of message so load doesn't have to use the deprecated setpayload function. 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 23/02/2005 Add [ 1144670 ] SMTP slow on large files Tony Meyer 14/02/2005 Handle multiple imap servers. Adds [ 1122067 ] Feature Request: Config sb_imapfilter for multiple accounts Tony Meyer 14/02/2005 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 12/02/2005 Add a "Notifications" tab to SpamBayes Manager for configuring notification sounds. Tony Meyer 08/02/2005 Move the ensureDir function to storage, as many scripts use it. Tony Meyer 07/02/2005 sb_server: When non-verbose, only report unique connection errors once per hour. Tony Meyer 01/02/2005 Update setup script to use Inno Setup 5.x rather than 4.x (patch from Kenny Pitt) 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. Tony Meyer 24/01/2005 Add new part of [ 1106457 ] bsddb185 has to be covered in dbmstorage.py Tony Meyer 21/01/2005 Fix [ 1106457 ] bsddb185 has to be covered in dbmstorage.py Tony Meyer 17/01/2005 Add a method to generate documentation for options that suits a HTML documentation file. Tony Meyer 17/01/2005 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 17/01/2005 Outlook: Remove migrating the data directory - the need for this predates any of the combined binaries, so should be past now. Tony Meyer 17/01/2005 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 14/01/2005 Try and work around the reasonably common problems with imaplib and OS X. Kenny Pitt 12/01/2005 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 12/01/2005 Outlook: General dialog template cleanup. Kenny Pitt 08/01/2005 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 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 04/01/2005 rcparser.py: Look for dialogs.h in this directory if it isn't with dialogs.rc. Tony Meyer 04/01/2005 Add initial French and Spanish translations. Tony Meyer 03/01/2005 Implement part of [ 753708 ] Support POP over SSL Tony Meyer 02/01/2005 UserInterface.py: cgi.escape the configuration filename Skip Montanaro 02/01/2005 tte.py: When running through the messages that haven't been kept for training, delete messages that score properly. Tony Meyer 29/12/2004 Outlook: Report the last modified date in the "show clues" message. Kenny Pitt 24/12/2004 New version numbering scheme. Tony Meyer 23/12/2004 Outlook: Enlarge the Manager dialog and add a control to set the ham folder. Tony Meyer 23/12/2004 Provide constants for the persistent ham/spam/unsure stings for the messageinfo db. Kenny Pitt 23/12/2004 Add a button on the Statistics tab to reset the Outlook statistics. Also display the date when the statistics were last reset. Tony Meyer 22/12/2004 Make Dibbler.py compatible with Python 2.2.1. Tony Meyer 22/12/2004 FileCorpus.py: Don't use the strict keyword arg as it is deprecated. Tony Meyer 22/12/2004 Add _() wrappers around appropriate strings in spambayes/ and scripts/. Tony Meyer 22/12/2004 i18n.py: Add a function to load the ui.html file appropriate for the language. Tony Meyer 22/12/2004 Merge the Outlook2000.oastats.Stats class and the spambayes.Stats.Stats class. Tony Meyer 22/12/2004 Store a stats start date in the message database, so that we can 'reset' the statistics without removing the whole message database. Tony Meyer 22/12/2004 Allow message.Messages to have their id specified on creation. Also allow specification of the messageinfo_db. Kenny Pitt 21/12/2004 sb_server: Fix a bug with the new style of checking the +OK on a RETR. Tony Meyer 20/12/2004 Allow Outlook users to select their storage method in exactly the same way as other users can. Tony Meyer 20/12/2004 Outlook: add a wrapper for the ZODB (FileStorage) storage class. Tony Meyer 20/12/2004 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 17/12/2004 message.py: Spit out a warning if the deprecated function is used. Tony Meyer 17/12/2004 message.py: Change the deprecated function to work in Python 2.4. Tony Meyer 17/12/2004 sb_imapfilter: Update extract_fetch_data to handle any number of literals/message numbers. Kenny Pitt 17/12/2004 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 16/12/2004 sb_imapfilter: compile re's and do this only once. Tony Meyer 16/12/2004 sb_imapfilter: improve handing of extract_fetch_data. Tony Meyer 16/12/2004 Outlook: Improve the faked up exchange headers that we generate if there are no Internet headers. Kenny Pitt 16/12/2004 Outlook: Include Message-ID in fake Exchange headers. Tony Meyer 08/12/2004 Improve test_storage.py and test_message.py. Tony Meyer 08/12/2004 Add [ 848365 ] Remove subject annotations from message review page Tony Meyer 08/12/2004 Add [ 1036970 ] Allow Outlook plugin to move ham to a designated folder Tony Meyer 07/12/2004 Outlook: More detailed statistics in SpamBayes Manager. These roughly match the updated statistics in the sb_server Web UI. 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 06/12/2004 Fix [ 1078923 ] Unicode support incomplete Tony Meyer 06/12/2004 Outlook: Use PR_SENDER_NAME rather than PR_DISPLAY_NAME_A for the faked-up "From" header. Kenny Pitt 04/12/2004 Add notification sound support as per patch #858925. Tony Meyer 01/12/2004 When doing "setup.py sdist" an MD5 checksum and the size of the created archive(s) is printed to stdout. Tony Meyer 29/11/2004 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 29/11/2004 Handle a message that does not have a proper separator in insert_exception_header. Tony Meyer 29/11/2004 Change sb_server to use the centralised insert_exception_header code. Tony Meyer 29/11/2004 Subject lines are not cgi.escape()d in the web interface, which might cause errors - fixed. Tony Meyer 26/11/2004 Outlook: Stop using the deprecated access to the bayes database and use the manager.classifier_data directly. Tony Meyer 26/11/2004 Outlook: Switch to using a spambayes.message.MessageInfo database rather than an Outlook specific one. Tony Meyer 26/11/2004 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 26/11/2004 Fix [ 1071319 ] Outlook plug in for IMAP boxes Tony Meyer 26/11/2004 message.py: Handle loading an Outlook messageinfo database, and add a __len__ function to the messageinfo databases. Tony Meyer 26/11/2004 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 24/11/2004 Moved the cleanarch script to the utilities directory and added '.py' to the filename. Tony Meyer 23/11/2004 Improve OE support code, mostly from [ 800671 ] Windows GUI for easy Outlook Express mailboxes training Tony Meyer 23/11/2004 message.py: Change MessageInfoBase's methods so that recording & retrieving a message are not private methods and are more clearly named. Tony Meyer 23/11/2004 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 23/11/2004 message.py: Remove the asTokens method in favour of the existing tokenize function. Tony Meyer 23/11/2004 message.py: Fix the include_evidence header to check for *H* and *S* explicitly rather than any token starting with *. Tony Meyer 22/11/2004 Add new storage types: CBDClassifier, ZODBClassifier, ZEOClassifier Tony Meyer 22/11/2004 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 22/11/2004 sb_pop3dnd: Play nicer with win32 gui Tony Meyer 22/11/2004 sb_pop3dnd: Don't use the deprecated 'strict' kwarg for email messages. Tony Meyer 22/11/2004 sb_pop3dnd: Add appropriate state createworkers function & call. Tony Meyer 22/11/2004 sb_pop3dnd: Modify to have the prepare/start/stop API that sb_server has. Tony Meyer 22/11/2004 sb_filter: Remove the "experimental" marking in the docstring for the training functions. 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 15/11/2004 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 12/11/2004 Add a separate Statistics tab to make room for more detailed statistics. Toby Dickenson 11/11/2004 Add a version of sb_bnfilter in C (for speed). 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 09/11/2004 Implement [ 870524 ] Make the message-proxy timeout configurable Tony Meyer 09/11/2004 Use email.message_from_string(text, _class) rather than our wrapper functions. Tony Meyer 09/11/2004 Implement [ 940547 ] imapfilter interface available when using -l switch Tony Meyer 08/11/2004 Outlook: Add two extra items to the "spam clues" for the message: last filtered score/class and if it has been trained. Tony Meyer 05/11/2004 Add unittests for sb_pop3dnd.py Tony Meyer 05/11/2004 sb_pop3dnd: remove use of the web interface Tony Meyer 05/11/2004 sb_pop3dnd: fix bug in getHeaders where negation wouldn't work correctly Tony Meyer 05/11/2004 sb_pop3dnd: fix loading of dynamic messages to correctly generate the headers, so that envelope works. Tony Meyer 05/11/2004 sb_pop3dnd: change the fake email addresses to the same format as the notate_to option (i.e. @spambayes.invalid) Tony Meyer 05/11/2004 sb_pop3dnd: improve the "about" message to include the docstring. Tony Meyer 05/11/2004 sb_pop3dnd: add a dynamic stats message. Tony Meyer 05/11/2004 sb_pop3dnd: improve the dynamic status message to include everything that would normally be on the web interface. Tony Meyer 05/11/2004 sb_pop3dnd: add a "train as spam" folder, to separate out training and classifying as spam. Tony Meyer 05/11/2004 sb_pop3dnd: use twisted.Application in the new style to avoid deprecation warnings. Tony Meyer 03/11/2004 Add [ 1052816 ] I18N - mostly the patch from Hernan Martinez Foffani 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 03/11/2004 Outlook: Also add an "X-Exchange-Delivery-Time" header to the faked up Exchange headers. Tony Meyer 02/11/2004 Improve the web interface statistics Tony Meyer 29/10/2004 If possible, use the builtin (faster, C-implemented) set class, falling back to sets.Set, then back to our compatsets.Set Tony Meyer 28/10/2004 Add [ 715248 ] Pickle classifier should save to a temp file first Tony Meyer 28/10/2004 Add [ 938992 ] Allow longer background filtering delays Tony Meyer 27/10/2004 Add a variety of improvements to sb_culler.py contributed by Andrew Dalke Tony Meyer 27/10/2004 Update sb_culler.py to match current open_storage() usage Tony Meyer 21/10/2004 Fix [ 1051081 ] uncaught socket timeoutexception slurping URLs Tony Meyer 20/10/2004 Outlook: Let the statistics have a variable number of decimal places for the percentages (1 by default). Tony Meyer 18/10/2004 Make msgs.Msg objects pickleable Tony Meyer 18/10/2004 Copy Skip's -o command line option (available in all the regular scripts) to timcv.py. 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 15/10/2004 Outlook: Add persistent statistics Tony Meyer 13/10/2004 Implement [ 1039057 ] Diffs for IMAP login problems... Tony Meyer 13/10/2004 Add Classifier.use_bigrams option to the Advanced options page for sb_server and imapfilter. Tony Meyer 13/10/2004 Fix mySQL storage option for the case where the server does not support rollbacks. Tony Meyer 07/10/2004 Add patch from Graham Ashton to allow users of sb_upload.py to not just upload, but also train. Sjoerd Mullender 02/10/2004 imapfilter: Quote the search string that tries to find the message again that was just saved. Kenny Pitt 02/10/2004 Outlook: Change "Delete as Spam" button to "Spam" and "Recover from Spam" button to "Not Spam". Tony Meyer 01/10/2004 Instead of treating notate_to just like notate_subject, we convert the classification into an email address. Tony Meyer 30/09/2004 Implement [ 940643 ] Add ham_folder option Tony Meyer 30/09/2004 Fix [ 903905 ] IMAP Configuration Error Tony Meyer 29/09/2004 Fix [ 1036601 ] typo on advanced config web page 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. Sjoerd Mullender 20/08/2004 imapfilter: Fix the regular expression to match the Message-ID header by stopping on newline. Skip Montanaro 18/08/2004 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 11/08/2004 First pass at moving help text out of the Python source and into the ui.html file. Tony Meyer 10/08/2004 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 09/08/2004 Change [Classifier] x-use_bigrams to a normal, not experimental option. Tony Meyer 06/08/2004 imapfilter: isinstance check is wrong, so will never be true, so literals in the folder list will never be handled correctly. Tony Meyer 05/08/2004 Remove all traces of the experimental imbalance option. Tony Meyer 05/08/2004 Remove support code for two deprecated options: [Tokenizer] x-extract_dow and [Tokenizer] x-generate_time_buckets. Tony Meyer 04/08/2004 Add basic unit tests for imapfilter. Tony Meyer 04/08/2004 Factor out X-Spambayes-Exception header code to message.py, and get imapfilter to use this. Tony Meyer 04/08/2004 imapfilter: Keep going if just one folder is bad (training/filtering). Tony Meyer 04/08/2004 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 04/08/2004 imapfilter: General sb_imapfilter tidy-up. Tony Meyer 04/08/2004 imapfilter: Remove the layers of attempting to fetch. Tony Meyer 04/08/2004 imapfilter: Change the way the get_substance method works (renaming it in the process). Tony Meyer 04/08/2004 imapfilter: Be less restrictive about the error returned when logging in fails. Sjoerd Mullender 03/08/2004 message.py: Don't round-trip the message being tokenized to a string. Tony Meyer 03/08/2004 Implement [ 909088 ] remove STLS pop3 capability Skip Montanaro 26/07/2004 tte.py: Generalize the spam:ham ratio flag to include the ham value instead of having it be implicitly 1. Skip Montanaro 25/07/2004 tte.py: Add --ratio=N flag to allow the user to adjust the ratio of spam to ham. Tony Meyer 23/07/2004 For proxy handler for version checking, the proxy port needs to be an integer, not a string. Tony Meyer 22/07/2004 pop3proxy_tray: Do what the Outlook plug-in does and give the user the "string" version of the version number. Tony Meyer 22/07/2004 Fix proxy handler for checking for latest version when username/password isn't given. Fix for Python 2.4 Kenny Pitt 22/07/2004 Improve display names for "allow_remote_connections" options to be less confusing. Tony Meyer 19/07/2004 Fix [ 990700 ] Changes to asyncore in Python 2.4 break ServerLineReader Kenny Pitt 17/07/2004 Add an "Empty Spam Folder" option to the plug-in dropdown menu. (Patch [831941]) 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 16/07/2004 Fix [ 943852 ] Incorrect sort order for Score column Tony Meyer 16/07/2004 Implemented [ 887984 ] Remove "Save and Shutdown" button when running as service 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 Tony Meyer 14/07/2004 When slurping, use a lower timeout so things work faster (with Python >=2.3) Tony Meyer 14/07/2004 setPayload() in message.py doesn't work in Python 2.4, so avoid. Refactor Corpus.py and FileCorpus.py to allow this. Skip Montanaro 10/07/2004 tte.py: 2.3 compatibility: add reversed() function Skip Montanaro 10/07/2004 tte.py: When deciding if messages are misses or not, consider whether they have Message-Id or Subject headers. Tony Meyer 09/07/2004 Using -u with sb_server had been broken. Fix this. 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 04/07/2004 Add a time stamp to the Outlook plug-in logs. Tony Meyer 04/07/2004 Fix [ 933473 ] Unnecessary spam folder hook. Neil Schemenauer 30/06/2004 New script, hammie2cdb.py, that converts hammie databases into cdb databases (usable by CdbClassifier). Skip Montanaro 29/06/2004 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 26/06/2004 New script, postfixproxy.py, a first cut proxy filter for use with PostFix 2.1's content filter stuff. Skip Montanaro 26/06/2004 hammie: Rename filter() to score_and_filter() and return both the spamprob and the modified message. Tony Meyer 11/06/2004 Add the "sb_culler.py" script from the SB wiki by Andrew Dalke. Tony Meyer 01/06/2004 Add fixes from [ 962693 ] mozilla/thunderbird/netscape profile dir detection Skip Montanaro 26/05/2004 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 24/05/2004 imapfilter: With the verbose output, put the final counts on a line all by themselves. Tony Meyer 16/05/2004 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 06/05/2004 Add a C implementation of sb_bnfilter. Tweak the Python version to minimise differences between the two. Enable psyco in sb_bnserver.