From montanaro at users.sourceforge.net Thu Apr 1 19:09:08 2004 From: montanaro at users.sourceforge.net (Skip Montanaro) Date: Thu Apr 1 19:21:05 2004 Subject: [Spambayes-checkins] spambayes/contrib sb_bnfilter.py,1.2,1.3 Message-ID: Update of /cvsroot/spambayes/spambayes/contrib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13565 Modified Files: sb_bnfilter.py Log Message: fix a typo, reflow some long lines Index: sb_bnfilter.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/contrib/sb_bnfilter.py,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sb_bnfilter.py 29 Mar 2004 06:52:39 -0000 1.2 --- sb_bnfilter.py 2 Apr 2004 00:09:05 -0000 1.3 *************** *** 9,13 **** # # * while we cant connect to a unix domain socket ! # * fork a seperate process that runs in the background # * in the child process: # * exec sb_bnserver. it listens on that same unix domain socket. --- 9,13 ---- # # * while we cant connect to a unix domain socket ! # * fork a separate process that runs in the background # * in the child process: # * exec sb_bnserver. it listens on that same unix domain socket. *************** *** 152,156 **** # the same as stdin was. if total_size != expected_size: ! print >> sys.stderr, 'size mismatch %d != %d' % (total_size, expected_size) sys.exit(3) if error: --- 152,157 ---- # the same as stdin was. if total_size != expected_size: ! print >> sys.stderr, 'size mismatch %d != %d' % (total_size, ! expected_size) sys.exit(3) if error: *************** *** 178,184 **** refused_count += 1 if refused_count == 6: ! # We have been waiting ages and still havent been able to connect. Maybe that socket ! # file has got orphaned. remove it, wait, and try again. We need to allow ! # enough time for sb_bnserver to initialise the rest of spambayes try: os.unlink(file) --- 179,187 ---- refused_count += 1 if refused_count == 6: ! # We have been waiting ages and still havent been able ! # to connect. Maybe that socket file has got ! # orphaned. remove it, wait, and try again. We need to ! # allow enough time for sb_bnserver to initialise the ! # rest of spambayes try: os.unlink(file) *************** *** 205,210 **** # sys.stderr = sys.__stderr__ = open("/dev/null", "w") os.setsid() ! # Use exec rather than import here because eventually it may be nice to reimplement this one file in C ! os.execv(sys.executable,[sys.executable, os.path.join(os.path.split(sys.argv[0])[0],'sb_bnserver.py') ]+options) # should never get here sys._exit(1) --- 208,216 ---- # sys.stderr = sys.__stderr__ = open("/dev/null", "w") os.setsid() ! # Use exec rather than import here because eventually it may be nice to ! # reimplement this one file in C ! os.execv(sys.executable,[sys.executable, ! os.path.join(os.path.split(sys.argv[0])[0], ! 'sb_bnserver.py') ]+options) # should never get here sys._exit(1) From kpitt at users.sourceforge.net Fri Apr 2 13:10:55 2004 From: kpitt at users.sourceforge.net (Kenny Pitt) Date: Fri Apr 2 13:23:01 2004 Subject: [Spambayes-checkins] spambayes/spambayes Corpus.py, 1.16, 1.17 FileCorpus.py, 1.10, 1.11 storage.py, 1.40, 1.41 Message-ID: Update of /cvsroot/spambayes/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8690 Modified Files: Corpus.py FileCorpus.py storage.py Log Message: Use integer bit values for observer_flags instead of string keywords. This should fix the problem of training errors in onRemoveMessage() when flags was None, and should also have slightly better performance. Index: Corpus.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/Corpus.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Corpus.py 24 Mar 2004 06:29:41 -0000 1.16 --- Corpus.py 2 Apr 2004 18:10:52 -0000 1.17 *************** *** 118,122 **** self.observers.append(observer) ! def addMessage(self, message, observer_flags=None): '''Add a Message to this corpus''' --- 118,122 ---- self.observers.append(observer) ! def addMessage(self, message, observer_flags=0): '''Add a Message to this corpus''' *************** *** 134,138 **** obs.onAddMessage(message, observer_flags) ! def removeMessage(self, message, observer_flags=None): '''Remove a Message from this corpus''' key = message.key() --- 134,138 ---- obs.onAddMessage(message, observer_flags) ! def removeMessage(self, message, observer_flags=0): '''Remove a Message from this corpus''' key = message.key() Index: FileCorpus.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/FileCorpus.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** FileCorpus.py 30 Mar 2004 16:30:16 -0000 1.10 --- FileCorpus.py 2 Apr 2004 18:10:52 -0000 1.11 *************** *** 140,144 **** Corpus.Corpus.addMessage(self, message) ! def removeMessage(self, message, observer_flags=None): '''Remove a Message from this corpus''' if options["globals", "verbose"]: --- 140,144 ---- Corpus.Corpus.addMessage(self, message) ! def removeMessage(self, message, observer_flags=0): '''Remove a Message from this corpus''' if options["globals", "verbose"]: Index: storage.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/storage.py,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** storage.py 24 Mar 2004 06:29:47 -0000 1.40 --- storage.py 2 Apr 2004 18:10:52 -0000 1.41 *************** *** 566,571 **** ! # Flags that the Trainer will recognise. ! NO_TRAINING_FLAG = "no_training" class Trainer: --- 566,572 ---- ! # Flags that the Trainer will recognise. These should be or'able integer ! # values (i.e. 1, 2, 4, 8, etc.). ! NO_TRAINING_FLAG = 1 class Trainer: *************** *** 580,584 **** self.updateprobs = updateprobs ! def onAddMessage(self, message, flags=None): '''A message is being added to an observed corpus.''' # There are no flags that we currently care about, so --- 581,585 ---- self.updateprobs = updateprobs ! def onAddMessage(self, message, flags=0): '''A message is being added to an observed corpus.''' # There are no flags that we currently care about, so *************** *** 598,602 **** message.RememberTrained(self.is_spam) ! def onRemoveMessage(self, message, flags=None): '''A message is being removed from an observed corpus.''' # If a message is being expired from the corpus, we do --- 599,603 ---- message.RememberTrained(self.is_spam) ! def onRemoveMessage(self, message, flags=0): '''A message is being removed from an observed corpus.''' # If a message is being expired from the corpus, we do *************** *** 604,608 **** # If this is the case, then flags will include NO_TRAINING_FLAG. # There are no other flags we currently use. ! if flags.find(NO_TRAINING_FLAG) < 0: self.untrain(message) --- 605,609 ---- # If this is the case, then flags will include NO_TRAINING_FLAG. # There are no other flags we currently use. ! if not (flags & NO_TRAINING_FLAG): self.untrain(message) From kpitt at users.sourceforge.net Mon Apr 5 09:44:58 2004 From: kpitt at users.sourceforge.net (Kenny Pitt) Date: Mon Apr 5 09:57:31 2004 Subject: [Spambayes-checkins] spambayes/spambayes Corpus.py,1.17,1.18 Message-ID: Update of /cvsroot/spambayes/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25748 Modified Files: Corpus.py Log Message: In the fix for 851785, at least one of the notate_to or notate_subject options is likely to be None, so check for that before making use of the option value. Index: Corpus.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/Corpus.py,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Corpus.py 2 Apr 2004 18:10:52 -0000 1.17 --- Corpus.py 5 Apr 2004 13:44:55 -0000 1.18 *************** *** 207,211 **** ("spam", "header_spam_string"), ("unsure", "header_unsure_string")): ! if opt in notate_opt and \ msg[header].startswith("%s," % options["Headers", tag]): msg.replace_header(header, msg[header][len(tag)+1:]) --- 207,211 ---- ("spam", "header_spam_string"), ("unsure", "header_unsure_string")): ! if (notate_opt is not None) and (opt in notate_opt) and \ msg[header].startswith("%s," % options["Headers", tag]): msg.replace_header(header, msg[header][len(tag)+1:]) From kpitt at users.sourceforge.net Tue Apr 6 09:21:51 2004 From: kpitt at users.sourceforge.net (Kenny Pitt) Date: Tue Apr 6 09:34:35 2004 Subject: [Spambayes-checkins] spambayes/spambayes Corpus.py,1.18,1.19 Message-ID: Update of /cvsroot/spambayes/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13579 Modified Files: Corpus.py Log Message: OK, let's try this again. Back out previous fix because it isn't really necessary (notate options will return an empty list, not None). The real culprit seems to be msg[header], so check that for None instead. It seems odd for a message to be missing a Subject: or To: header, but this is spam after all and malformed messages are not unusual. Index: Corpus.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/Corpus.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Corpus.py 5 Apr 2004 13:44:55 -0000 1.18 --- Corpus.py 6 Apr 2004 13:21:46 -0000 1.19 *************** *** 207,211 **** ("spam", "header_spam_string"), ("unsure", "header_unsure_string")): ! if (notate_opt is not None) and (opt in notate_opt) and \ msg[header].startswith("%s," % options["Headers", tag]): msg.replace_header(header, msg[header][len(tag)+1:]) --- 207,211 ---- ("spam", "header_spam_string"), ("unsure", "header_unsure_string")): ! if opt in notate_opt and msg[header] is not None and \ msg[header].startswith("%s," % options["Headers", tag]): msg.replace_header(header, msg[header][len(tag)+1:]) From anadelonbrin at users.sourceforge.net Wed Apr 7 02:49:07 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Wed Apr 7 03:02:00 2004 Subject: [Spambayes-checkins] spambayes/testtools timcv.py,1.6,1.7 Message-ID: Update of /cvsroot/spambayes/spambayes/testtools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17469/testtools Modified Files: timcv.py Log Message: Smallest typo you could find :) Index: timcv.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/testtools/timcv.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** timcv.py 4 Feb 2004 01:34:54 -0000 1.6 --- timcv.py 7 Apr 2004 06:49:04 -0000 1.7 *************** *** 40,44 **** -s int A seed for the random number generator. Has no effect unless ! at least on of {--ham-keep, --spam-keep} is specified. If -s isn't specifed, the seed is taken from current time. --- 40,44 ---- -s int A seed for the random number generator. Has no effect unless ! at least one of {--ham-keep, --spam-keep} is specified. If -s isn't specifed, the seed is taken from current time. From anadelonbrin at users.sourceforge.net Sun Apr 11 20:45:23 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Sun Apr 11 20:59:02 2004 Subject: [Spambayes-checkins] website faq.txt,1.65,1.66 Message-ID: Update of /cvsroot/spambayes/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1538 Modified Files: faq.txt Log Message: Bring the "uninstall" question/answer more up-to-date. Index: faq.txt =================================================================== RCS file: /cvsroot/spambayes/website/faq.txt,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -d -r1.65 -r1.66 *** faq.txt 19 Mar 2004 03:12:06 -0000 1.65 --- faq.txt 12 Apr 2004 00:45:21 -0000 1.66 *************** *** 724,735 **** select the SpamBayes toolbar and click "Delete". ! Recently, there have been reports that the uninstaller has left some entries ! in the registry - if this is the case with you, please add to that `bug tracker`_; ! the next release will hopefully resolve this issue. These should be harmless, ! but if they bother you (and you are confident mucking about with the registry, ! which we do *not* recommend), then you can remove those keys yourself. .. _`backup question`: #can-i-back-up-the-outlook-database-should-i-do-this - .. _`bug tracker`: http://sourceforge.net/tracker/index.php?func=detail&aid=832183&group_id=61702&atid=498103 .. _`a bug with the plug-in`: http://sourceforge.net/tracker/index.php?func=detail&aid=675811&group_id=61702&atid=498103 --- 724,734 ---- select the SpamBayes toolbar and click "Delete". ! With the 008.1 and earlier versions of the plug-in, some entries may be left ! in the registry. These should be harmless, but if they bother you (and you ! are confident mucking about with the registry, which we do *not* recommend), ! then you can remove those keys yourself. Newer versions of the installer ! correctly remove these entries. .. _`backup question`: #can-i-back-up-the-outlook-database-should-i-do-this .. _`a bug with the plug-in`: http://sourceforge.net/tracker/index.php?func=detail&aid=675811&group_id=61702&atid=498103 From anadelonbrin at users.sourceforge.net Sun Apr 11 21:41:36 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Sun Apr 11 21:55:15 2004 Subject: [Spambayes-checkins] spambayes CHANGELOG.txt, 1.40, 1.41 WHAT_IS_NEW.txt, 1.31, 1.32 setup.py, 1.28, 1.29 Message-ID: Update of /cvsroot/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9820 Modified Files: CHANGELOG.txt WHAT_IS_NEW.txt setup.py Log Message: Bring changelog and what's new up to date. Add sb_bnfilter.py to the scripts to be installed. Index: CHANGELOG.txt =================================================================== RCS file: /cvsroot/spambayes/spambayes/CHANGELOG.txt,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** CHANGELOG.txt 24 Mar 2004 06:35:58 -0000 1.40 --- CHANGELOG.txt 12 Apr 2004 01:41:33 -0000 1.41 *************** *** 3,6 **** --- 3,8 ---- 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). Index: WHAT_IS_NEW.txt =================================================================== RCS file: /cvsroot/spambayes/spambayes/WHAT_IS_NEW.txt,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** WHAT_IS_NEW.txt 24 Mar 2004 06:35:58 -0000 1.31 --- WHAT_IS_NEW.txt 12 Apr 2004 01:41:34 -0000 1.32 *************** *** 84,87 **** --- 84,90 ---- ------- o Added new flags and results data to the contrib/tte.py script. + o Added a new script - sb_bnfilter.py, which works like sb_filter + but avoids startup overhead (like sb_xmlrpcserver.py aims to, but + without as much administration work). Index: setup.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/setup.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** setup.py 25 Nov 2003 03:55:56 -0000 1.28 --- setup.py 12 Apr 2004 01:41:34 -0000 1.29 *************** *** 78,81 **** --- 78,82 ---- 'scripts/sb_evoscore.py', 'scripts/sb_filter.py', + 'scripts/sb_bnfilter.py', 'scripts/sb_imapfilter.py', 'scripts/sb_mailsort.py', From anadelonbrin at users.sourceforge.net Sun Apr 11 21:57:37 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Sun Apr 11 22:11:16 2004 Subject: [Spambayes-checkins] website faq.txt,1.66,1.67 Message-ID: Update of /cvsroot/spambayes/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12214 Modified Files: faq.txt Log Message: Add an extra bit to the "how to configure" FAQ explaining which ports would be good to use for local proxying. Index: faq.txt =================================================================== RCS file: /cvsroot/spambayes/website/faq.txt,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** faq.txt 12 Apr 2004 00:45:21 -0000 1.66 --- faq.txt 12 Apr 2004 01:57:34 -0000 1.67 *************** *** 931,935 **** If you use the POP3 proxy or IMAP filter, then simply open a browser window to http://localhost:8880, click on the configuration link on the top ! right of the page that opens up, and fill in the details. If you're using the POP3 proxy, you'll also need to configure your email client to talk to the proxies instead of the real email servers. Change your equivalent of --- 931,942 ---- If you use the POP3 proxy or IMAP filter, then simply open a browser window to http://localhost:8880, click on the configuration link on the top ! right of the page that opens up, and fill in the details. ! ! With the POP3 proxy, when you need to select local port numbers to proxy ! on, if you are only proxying one server, then try 110 first. If that ! doesn't work, or you are proxying multiple servers, then try higher numbers, ! such as 8110, 8111, 8112, and so on. ! ! If you're using the POP3 proxy, you'll also need to configure your email client to talk to the proxies instead of the real email servers. Change your equivalent of From anadelonbrin at users.sourceforge.net Sun Apr 11 21:59:32 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Sun Apr 11 22:13:11 2004 Subject: [Spambayes-checkins] spambayes/spambayes Options.py,1.106,1.107 Message-ID: Update of /cvsroot/spambayes/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12524/spambayes Modified Files: Options.py Log Message: Add hints to which local ports would be good to use for proxying. Index: Options.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/Options.py,v retrieving revision 1.106 retrieving revision 1.107 diff -C2 -d -r1.106 -r1.107 *** Options.py 24 Mar 2004 22:28:59 -0000 1.106 --- Options.py 12 Apr 2004 01:59:26 -0000 1.107 *************** *** 793,797 **** each monitored server. Again, you need to configure your email client to use this port. If there are multiple servers, you must ! specify the same number of ports as servers, separated by commas.""", SERVER, DO_NOT_RESTORE), --- 793,799 ---- each monitored server. Again, you need to configure your email client to use this port. If there are multiple servers, you must ! specify the same number of ports as servers, separated by commas. ! If you don't know what to use here, and you only have one server, ! try 110, or if that doesn't work, try 8110.""", SERVER, DO_NOT_RESTORE), From anadelonbrin at users.sourceforge.net Sun Apr 11 21:59:58 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Sun Apr 11 22:13:38 2004 Subject: [Spambayes-checkins] spambayes README.txt,1.65,1.66 Message-ID: Update of /cvsroot/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12524 Modified Files: README.txt Log Message: Add hints to which local ports would be good to use for proxying. Index: README.txt =================================================================== RCS file: /cvsroot/spambayes/spambayes/README.txt,v retrieving revision 1.65 retrieving revision 1.66 diff -C2 -d -r1.65 -r1.66 *** README.txt 8 Feb 2004 02:45:37 -0000 1.65 --- README.txt 12 Apr 2004 01:59:26 -0000 1.66 *************** *** 135,141 **** right, and fill in the relevant details. Everything should be OK with the defaults, except for the POP3 and SMTP server information at the top, which ! is required. Note that *nix users may not have permission to bind ports ! lower than 1025, so instead of proxying on ports 25 and 110, you should ! chose higher numbers, such as 1025 and 1110. When you check your mail in your mail client now, messages should have an --- 135,144 ---- right, and fill in the relevant details. Everything should be OK with the defaults, except for the POP3 and SMTP server information at the top, which ! is required. For the local ports to proxy on, if you are only proxying one ! server, and you are using Windows, then 110 is probably the best port to ! try first. If that doesn't work, try using 8110 (and if you are proxying ! multiple ports, continue with 8111, 8112, and so on). Note that *nix users ! may not have permission to bind ports lower than 1025, so should choose ! numbers higher than that. When you check your mail in your mail client now, messages should have an From mhammond at users.sourceforge.net Mon Apr 12 23:32:50 2004 From: mhammond at users.sourceforge.net (Mark Hammond) Date: Mon Apr 12 23:46:42 2004 Subject: [Spambayes-checkins] spambayes/spambayes Version.py,1.28,1.29 Message-ID: Update of /cvsroot/spambayes/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22991 Modified Files: Version.py Log Message: Bump version numbers ready for 1.0b1 Index: Version.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/Version.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** Version.py 6 Feb 2004 16:01:46 -0000 1.28 --- Version.py 13 Apr 2004 03:32:47 -0000 1.29 *************** *** 29,45 **** "Apps": { "sb_filter" : { ! "Version": 0.2, "Description": "SpamBayes Command Line Filter", ! "Date": "February 2004", "Full Description": "%(Description)s Version %(Version)s (%(Date)s)", }, "Outlook" : { ! "Version": 0.9, ! "BinaryVersion": 0.9, "Description": "SpamBayes Outlook Addin", ! "Date": "February 2004", ! "Full Description": "%(Description)s Version %(Version)s (%(Date)s)", "Full Description Binary": ! "%(Description)s Binary Version %(BinaryVersion)s (%(Date)s)", # Note this means we can change the download page later, and old # versions will still go to the new page. --- 29,50 ---- "Apps": { "sb_filter" : { ! "Version": 0.3, "Description": "SpamBayes Command Line Filter", ! "Date": "April 2004", "Full Description": "%(Description)s Version %(Version)s (%(Date)s)", }, "Outlook" : { ! # Note these version numbers currently don't appear in the ! # "description" strings below - they just need to increment ! # so automated version checking works. ! # 0.99 indicates '1.0b/rc/' so will go 0.992 etc, until a real ! # 1.0, which can get 1.0 :) ! "Version": 0.991, ! "BinaryVersion": 0.991, "Description": "SpamBayes Outlook Addin", ! "Date": "April 2004", ! "Full Description": "%(Description)s Version 1.0b1 (%(Date)s)", "Full Description Binary": ! "%(Description)s Binary Version 1.0b1 (%(Date)s)", # Note this means we can change the download page later, and old # versions will still go to the new page. *************** *** 48,58 **** }, "POP3 Proxy" : { ! "Version": 0.4, ! "BinaryVersion": 0.4, "Description": "SpamBayes POP3 Proxy", ! "Date": "February 2004", ! "Full Description": """%(Description)s Version %(Version)s (%(Date)s)""", "Full Description Binary": ! """%(Description)s Binary Version %(BinaryVersion)s (%(Date)s)""", # Note this means we can change the download page later, and old # versions will still go to the new page. --- 53,65 ---- }, "POP3 Proxy" : { ! # Note these version numbers also currently don't appear in the ! # "description" strings below - see above ! "Version": 0.5, ! "BinaryVersion": 0.5, "Description": "SpamBayes POP3 Proxy", ! "Date": "April 2004", ! "Full Description": """%(Description)s Version 1.0b1 (%(Date)s)""", "Full Description Binary": ! """%(Description)s Binary Version 1.0b1 (%(Date)s)""", # Note this means we can change the download page later, and old # versions will still go to the new page. *************** *** 67,73 **** }, "IMAP Filter" : { ! "Version": 0.2, "Description": "SpamBayes IMAP Filter", ! "Date": "February 2004", "Full Description": """%(Description)s Version %(Version)s (%(Date)s)""", }, --- 74,80 ---- }, "IMAP Filter" : { ! "Version": 0.3, "Description": "SpamBayes IMAP Filter", ! "Date": "April 2004", "Full Description": """%(Description)s Version %(Version)s (%(Date)s)""", }, From anadelonbrin at users.sourceforge.net Mon Apr 12 23:53:15 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 00:07:04 2004 Subject: [Spambayes-checkins] spambayes/windows/docs troubleshooting.html, NONE, 1.1 Message-ID: Update of /cvsroot/spambayes/spambayes/windows/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26105/windows/docs Added Files: troubleshooting.html Log Message: First stab at a troubleshooting guide for the sb_server binary. This only has a couple of questions (I couldn't think of what was common at the moment), but more can be added as time goes on. Importantly, it does have information about how to find the log files, how to get to the FAQ, and the online version of this file, and that sort of thing. --- NEW FILE: troubleshooting.html --- Troubleshooting SpamBayes sb_server

Troubleshooting SpamBayes sb_server

This is a list of common problems, and hopefully their solutions. Please feel free to suggest additional topics. Currently, we have the following problems listed:
Some other resources that may be useful in tracking down any problems:
If you must send someone a mail about SpamBayes, please read this first.

I did the SpamBayes configuration, but my mail doesn't filter

Have you changed your mail client to connect to "localhost", instead of directly to your mail server? SpamBayes acts as a "proxy", which means that your mail client asks for new mail via SpamBayes, so that SpamBayes can add some information to incoming mail about what type of mail it thinks that message is.

Mail doesn't filter and there is a "X-SpamBayes-Exception header"

If mail stops filtering, have a look at the headers of a message. If it doesn't have a "X-SpamBayes-Classification" header, but does have a "X-SpamBayes-Exception" header, this means that something is going wrong when SpamBayes tries to classify the message. It's ok if this happens with one or two messages, but if this happens to every message, something is wrong.

The most common reason is that something has happened to your database - if this is the case, then the Exception header probably has "DBRunRecovery" in it. Information about this problem rapidly changes, so please see the online FAQ for more information.

For all other problems, please send us a mail, including a copy of the information in the X-SpamBayes exception header.

All other problems

If you are simply unsure about what SpamBayes is doing, please send a mail to the SpamBayes mailing list with as much information as possible. If you are fairly sure you have struck a bug, then please report it. Please do not mail any of the contributors directly.


Process Descriptions

This explains some of the processes above in more detail.

Determine your installation type.

If you are running from Python source code, and installed Python, plus SpamBayes as separate components, then you are running the source code version. If you downloaded an installer .EXE file, then you are running the binary version.

Check the log file

Determine your installation type. If you are running the source code version, you will need to run sb_server in a command window to get the error messages, unless you are running as a service.
If you are running as a service and/or the binary version, then SpamBayes writes a log in your Windows temp directory. This directory is generally \WINDOWS\TEMP for Windows 9x, or \Documents and Settings\{username}\Local Settings\Temp for Windows 2000/XP.

Note that by default, in Windows 2000 and XP, Windows Explorer will not show the Local Settings directory, as it is hidden. You can convince Windows Explorer to show this directory (and therefore allow you to see the Temp directory under it by doing either:

  • Select the folder \Documents and Settings\{username}. This directory should be reflected in the Address Bar. In the Address Bar, simply type at the end "\Local Settings" (thereby giving that full path name), and press Enter. Explorer will then show this folder.
or
  • Select Tools->Folder Options, select the View tab, and in the list, select Show hidden files and folders. Select OK. This folder will now be visible. You may like to then reset this option back to the default value.

For binary users, the log file for the most recent execution of sb_server is named SpamBayesServer1.log , the second most recent is named SpamBayesServer2.log, and so on for the four previous runs. For those that run as a service, the files are named SpamBayesService1.log, and so on. You can view these files with notepad. Usually, you will simply see messages which indicate that SpamBayes is doing its job; however in some cases there will be errors in this file. If there are errors, please report a bug.

Locating your Data Directory

SpamBayes stores all configuration and database information in a single directory. By default, this directory is located under the user's Application Data directory. At the top of the Configuration Page in the web interface the full path to your configuration file is listed - this will almost certainly be in your Data Directory. If you need to locate it by hand, on Windows NT/2000/XP, it will probably be C:\Documents and Settings\[username]\Application Data\Spambayes, or on other versions of Windows it will probably be C:\Windows\Application Data\Spambayes. Note that the Application Data folder may be hidden, so Windows Explorer may not show it by default, but you can enter the path into the Address Bar and Explorer will open it.
Note that by modifying the configuration files, you can tell SpamBayes to store this data in any directory, so it is possible your data is being stored elsewhere - contact your network administrator if this appears to be the case.

Report a bug

All SpamBayes bugs are maintained in this page at sourceforge. Please have a check of the bugs already reported to see if your bug has already been reported. If not, open a new bug, making sure to set the Category to pop3proxy, and setting the Group to the appropriate version. Please also ensure you attach the log file to the bug.
If you are unsure about the bug, or need any assistance, please send a mail.

Send a mail

If all else fails, you may want to send someone a mail. Please make sure you have read this document thoroughly before doing do.
Your mail should be sent to the SpamBayes mailing list (spambayes@python.org) Please do not mail any of the contributors directly (see "good karma" below).
Please ensure this mail contains:

  • the version of Windows you are using
  • the version of SpamBayes
  • any log files.

If you also mention that you read this trouble-shooting guide and are still stuck, then you will be more likely to get answered! (And if you can subscribe to this mailing list and help answer other questions, good karma will come your way!)

From anadelonbrin at users.sourceforge.net Tue Apr 13 00:01:14 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 00:15:06 2004 Subject: [Spambayes-checkins] spambayes/windows spambayes.iss,1.11,1.12 Message-ID: Update of /cvsroot/spambayes/spambayes/windows In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27225/windows Modified Files: spambayes.iss Log Message: Install the troubleshooting guide. Index: spambayes.iss =================================================================== RCS file: /cvsroot/spambayes/spambayes/windows/spambayes.iss,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** spambayes.iss 16 Feb 2004 23:30:02 -0000 1.11 --- spambayes.iss 13 Apr 2004 04:01:12 -0000 1.12 *************** *** 35,38 **** --- 35,39 ---- Source: "py2exe\dist\bin\setup_server.exe"; DestDir: "{app}\bin"; Check: InstallingProxy; Flags: ignoreversion Source: "py2exe\dist\docs\sb_server\readme_proxy.html"; DestDir: "{app}\docs\sb_server"; Check: InstallingProxy; Flags: isreadme + Source: "py2exe\dist\docs\sb_server\troubleshooting.html"; DestDir: "{app}\docs\sb_server"; Check: InstallingProxy Source: "py2exe\dist\docs\sb_server\*.*"; DestDir: "{app}\docs\sb_server"; Check: InstallingProxy; Flags: recursesubdirs From anadelonbrin at users.sourceforge.net Tue Apr 13 00:01:14 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 00:15:07 2004 Subject: [Spambayes-checkins] spambayes/windows/py2exe setup_all.py, 1.16, 1.17 Message-ID: Update of /cvsroot/spambayes/spambayes/windows/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27225/windows/py2exe Modified Files: setup_all.py Log Message: Install the troubleshooting guide. Index: setup_all.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/windows/py2exe/setup_all.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** setup_all.py 16 Feb 2004 08:20:17 -0000 1.16 --- setup_all.py 13 Apr 2004 04:01:11 -0000 1.17 *************** *** 127,130 **** --- 127,131 ---- proxy_data_files = [ ["docs/sb_server", [os.path.join(sb_top_dir, r"windows\readme_proxy.html")]], + ["docs/sb_server", [os.path.join(sb_top_dir, r"windows\docs\troubleshooting.html")]], # note that this includes images that are already in the outlook/docs/images # directory - we need to consolidate the documentation (in terms of From anadelonbrin at users.sourceforge.net Tue Apr 13 00:01:36 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 00:15:25 2004 Subject: [Spambayes-checkins] spambayes/windows readme_proxy.html,1.6,1.7 Message-ID: Update of /cvsroot/spambayes/spambayes/windows In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27288/windows Modified Files: readme_proxy.html Log Message: Add license information. Index: readme_proxy.html =================================================================== RCS file: /cvsroot/spambayes/spambayes/windows/readme_proxy.html,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** readme_proxy.html 16 Feb 2004 23:30:02 -0000 1.6 --- readme_proxy.html 13 Apr 2004 04:01:33 -0000 1.7 *************** *** 192,195 **** --- 192,205 ---- the Refresh button at the top of the page.

+

Cost, Copyright and Licensing

+

SpamBayes is copyright (C) 2002-4 Python Software Foundation; All Rights + Reserved.
+ The Python Software Foundation (PSF) holds copyright on all material + in this project. You may use it under the terms of the PSF license; + see LICENSE.txt.

+

What all this means, in general terms, is that SpamBayes is completely + free to use, in pretty much any way you like. You're welcome to distribute + it, or even create your own software based on it. Enjoy!

+

Your help is needed!

This is free software. Please offer any help you are able From anadelonbrin at users.sourceforge.net Tue Apr 13 00:02:01 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 00:15:55 2004 Subject: [Spambayes-checkins] spambayes/windows/docs troubleshooting.html, 1.1, 1.2 Message-ID: Update of /cvsroot/spambayes/spambayes/windows/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27313/windows/docs Modified Files: troubleshooting.html Log Message: Add service information to "installation type" section. Index: troubleshooting.html =================================================================== RCS file: /cvsroot/spambayes/spambayes/windows/docs/troubleshooting.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** troubleshooting.html 13 Apr 2004 03:53:12 -0000 1.1 --- troubleshooting.html 13 Apr 2004 04:01:59 -0000 1.2 *************** *** 70,74 **** style="font-style: italic;">source code version. If you downloaded an installer .EXE file, then you are running the binary version.

Check the log file

--- 70,77 ---- style="font-style: italic;">source code version. If you downloaded an installer .EXE file, then you are running the binary version. If you ran ! the "sb_service" application, then you are probably running as ! a service (although note that SpamBayes will try to fall back ! to a regular binary version if the service is unavailable).

Check the log file

From anadelonbrin at users.sourceforge.net Tue Apr 13 00:09:42 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 00:23:32 2004 Subject: [Spambayes-checkins] spambayes/windows spambayes.iss,1.12,1.13 Message-ID: Update of /cvsroot/spambayes/spambayes/windows In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28366/windows Modified Files: spambayes.iss Log Message: Add a start menu item for the sb_server troubleshooting guide. Index: spambayes.iss =================================================================== RCS file: /cvsroot/spambayes/spambayes/windows/spambayes.iss,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** spambayes.iss 13 Apr 2004 04:01:12 -0000 1.12 --- spambayes.iss 13 Apr 2004 04:09:40 -0000 1.13 *************** *** 62,65 **** --- 62,66 ---- Name: "{userstartup}\SpamBayes Tray Icon"; Filename: "{app}\bin\sb_tray.exe"; Check: InstallingProxy; Tasks: startup Name: "{group}\About SpamBayes"; Filename: "{app}\docs\sb_server\readme_proxy.html"; Check: InstallingProxy; + Name: "{group}\Troubleshooting Guide"; Filename: "{app}\docs\sb_server\troubleshooting.html"; Check: InstallingProxy; Name: "{group}\SpamBayes Outlook Addin\About SpamBayes"; Filename: "{app}\docs\outlook\about.html"; Check: InstallingOutlook From mhammond at users.sourceforge.net Tue Apr 13 00:11:38 2004 From: mhammond at users.sourceforge.net (Mark Hammond) Date: Tue Apr 13 00:25:27 2004 Subject: [Spambayes-checkins] spambayes/windows spambayes.iss,1.13,1.14 Message-ID: Update of /cvsroot/spambayes/spambayes/windows In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28614 Modified Files: spambayes.iss Log Message: Version 1.0b1 Index: spambayes.iss =================================================================== RCS file: /cvsroot/spambayes/spambayes/windows/spambayes.iss,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** spambayes.iss 13 Apr 2004 04:09:40 -0000 1.13 --- spambayes.iss 13 Apr 2004 04:11:35 -0000 1.14 *************** *** 5,11 **** [Setup] ; Version specific constants ! AppVerName=SpamBayes 1.0a9 (0.9) ! AppVersion=0.90 ! OutputBaseFilename=spambayes-1.0a9 ; Normal constants. Be careful about changing 'AppName' AppName=SpamBayes --- 5,11 ---- [Setup] ; Version specific constants ! AppVerName=SpamBayes 1.0b1 ! AppVersion=0.991 ! OutputBaseFilename=spambayes-1.0b1 ; Normal constants. Be careful about changing 'AppName' AppName=SpamBayes From anadelonbrin at users.sourceforge.net Tue Apr 13 00:30:56 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 00:44:48 2004 Subject: [Spambayes-checkins] website faq.txt,1.67,1.68 Message-ID: Update of /cvsroot/spambayes/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31749 Modified Files: faq.txt Log Message: Add more information to the "whitelisting" FAQ based on recent messages on spambayes@python.org to try and make it easier to understand what the status is. Index: faq.txt =================================================================== RCS file: /cvsroot/spambayes/website/faq.txt,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** faq.txt 12 Apr 2004 01:57:34 -0000 1.67 --- faq.txt 13 Apr 2004 04:30:54 -0000 1.68 *************** *** 1398,1409 **** mailer to intercept the messages before they're passed to SpamBayes. ! None of the existing SpamBayes developers have an interest in ! implementing whitelisting - if it's something you feel really strongly ! about, download the source and look into making a patch. If someone ! implements whitelisting, including all the user interface side needed ! to manage it, there's no reason it wouldn't be accepted into the source ! code. .. _related page: related.html --- 1398,1435 ---- mailer to intercept the messages before they're passed to SpamBayes. ! Open Source software is developed by people scratching their own itches ! (and it can't be otherwise, since nobody is paid to endure things they ! don't want to do). While few, if any, of the SpamBayes developers would ! object to adding whitelist gimmicks, none of the existing developers ! have an interest in implementing them, typically because they'd be a net ! loss for them (and so wouldn't use them). ! ! Developers may have a different view of this than most users - because ! they work on open source software, they know a lot of other open source ! developers, and their email addresses are all over the web. As a result, ! they get a lot of spam, and especially viruses, claiming to be sent from ! people they know (including direct coworkers, bosses, and the company ! president). We even get viruses and spam claiming to come from ourselves ! (but don't remember sending them ). So what SpamBayes does now is ! exactly right for us: the person a thing claims to come from is *a* clue, ! but just one clue, and is tossed in the pot with all the other clues. ! ! If someone contributed code to do it, it would probably get added. Note ! that there are increasing problems trying to access the address book, ! because every Outlook service pack makes that harder to do (accessing the ! Windows address book is most associated with viruses). ! ! There are three main things that need to be done: ! ! * Determine the list to match against. ! * Design a UI that configures it (even if as simple as a checkbox!). ! * Match the addresses as they come in. ! ! If you are interested in implementing whitelisting, take a look at ! `some comments from Mark`_. ! .. _related page: related.html + .. _some comments from Mark: http://mail.python.org/pipermail/spambayes/2004-April/012300.html From anadelonbrin at users.sourceforge.net Tue Apr 13 00:51:40 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 01:05:30 2004 Subject: [Spambayes-checkins] spambayes/spambayes __init__.py,1.9,1.10 Message-ID: Update of /cvsroot/spambayes/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2119/spambayes Modified Files: __init__.py Log Message: Beta release 1! Index: __init__.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/__init__.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** __init__.py 9 Feb 2004 06:16:40 -0000 1.9 --- __init__.py 13 Apr 2004 04:51:37 -0000 1.10 *************** *** 1,3 **** # package marker. ! __version__ = '1.0a9' --- 1,3 ---- # package marker. ! __version__ = '1.0b1' From anadelonbrin at users.sourceforge.net Tue Apr 13 01:11:27 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Tue Apr 13 01:25:18 2004 Subject: [Spambayes-checkins] website applications.ht, 1.26, 1.27 download.ht, 1.22, 1.23 index.ht, 1.31, 1.32 reply.txt, 1.12, 1.13 windows.ht, 1.35, 1.36 Message-ID: Update of /cvsroot/spambayes/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5001 Modified Files: applications.ht download.ht index.ht reply.txt windows.ht Log Message: Update for 1.0b1 and change a few "Spambayes" to "SpamBayes". Index: applications.ht =================================================================== RCS file: /cvsroot/spambayes/website/applications.ht,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** applications.ht 9 Feb 2004 06:44:41 -0000 1.26 --- applications.ht 13 Apr 2004 05:11:24 -0000 1.27 *************** *** 29,33 ****

Mark has packaged together an installer for the plugin. Go to the Windows page for more.

!

Download the alpha9 release.

Alternatively, you can use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

--- 29,33 ----

Mark has packaged together an installer for the plugin. Go to the Windows page for more.

!

Download the beta1 release.

Alternatively, you can use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

*************** *** 45,49 ****

Availability

!

Download the alpha9 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

--- 45,49 ----

Availability

!

Download the beta1 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

*************** *** 61,66 ****

Availability

Windows users can now download an installer for a binary version of sb_server, ! including a tray application to access it. Download the 009 release.

!

Alternatively, to run from source, download the alpha9 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

--- 61,66 ----

Availability

Windows users can now download an installer for a binary version of sb_server, ! including a tray application to access it. Download the beta1 release.

!

Alternatively, to run from source, download the beta1 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

*************** *** 77,81 ****

Availability

!

Download the alpha9 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

--- 77,81 ----

Availability

!

Download the beta1 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

*************** *** 93,97 ****

Availability

!

Download the alpha9 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

--- 93,97 ----

Availability

!

Download the beta1 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

*************** *** 111,114 ****

Availability

!

Download the alpha9 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

--- 111,114 ----

Availability

!

Download the beta1 release.

Alternatively, use CVS to get the code - go to the CVS page on the project's sourceforge site for more.

Index: download.ht =================================================================== RCS file: /cvsroot/spambayes/website/download.ht,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** download.ht 9 Feb 2004 06:44:41 -0000 1.22 --- download.ht 13 Apr 2004 05:11:24 -0000 1.23 *************** *** 4,10 ****

Source Releases

!

Alpha release 9 of version 1.0 of the SpamBayes project is now available. ! Download version 1.0a9 from the sourceforge Files page as either a gzipped tarball or a zip file of the source files.

--- 4,10 ----

Source Releases

!

Beta release 1 of version 1.0 of the SpamBayes project is now available. ! Download version 1.0b1 from the sourceforge Files page as either a gzipped tarball or a zip file of the source files.

Index: index.ht =================================================================== RCS file: /cvsroot/spambayes/website/index.ht,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** index.ht 9 Feb 2004 06:44:42 -0000 1.31 --- index.ht 13 Apr 2004 05:11:24 -0000 1.32 *************** *** 5,16 ****

News

!

The 1.0alpha9 release of the SpamBayes source is available, as is ! the 0.9 release of the binary installer for the Outlook plug-in.

!

The binary installer also includes the first release of ! a binary version of sb_server (aka pop3proxy). If you use sb_server, ! please give this version a go and let us know how it goes (you no ! longer need to have Python installed with the binary version).

See the download page for more.

!

You may also like to see what other people have been saying about us in the press and elsewhere.

What is SpamBayes?

--- 5,13 ----

News

!

The first beta version of SpamBayes (both source and Windows ! binary installer) is now available!

See the download page for more.

!

You may also like to see what other people have ! been saying about us in the press and elsewhere.

What is SpamBayes?

Index: reply.txt =================================================================== RCS file: /cvsroot/spambayes/website/reply.txt,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** reply.txt 15 Feb 2004 04:54:00 -0000 1.12 --- reply.txt 13 Apr 2004 05:11:24 -0000 1.13 *************** *** 12,16 **** frequently asked questions page: ! http://spambayes.sourceforge.net/faq.html If you are using the Outlook plug-in, please also take the time to read --- 12,16 ---- frequently asked questions page: ! http://spambayes.org/faq.html If you are using the Outlook plug-in, please also take the time to read *************** *** 18,22 **** you can read it online: ! http://spambayes.sourceforge.net/docs.html Note that you need to include a copy of your log files with any message --- 18,22 ---- you can read it online: ! http://spambayes.org/docs.html Note that you need to include a copy of your log files with any message *************** *** 25,35 **** ! What is Spambayes? ------------------ ! The Spambayes project was formed to develop a Bayesian anti-spam filter, initially based on the work of Paul Graham. The major difference between this and other, similar, projects is the emphasis on testing newer ! approaches to scoring messages. You can read all about Spambayes on the project's website: --- 25,35 ---- ! What is SpamBayes? ------------------ ! The SpamBayes project was formed to develop a Bayesian anti-spam filter, initially based on the work of Paul Graham. The major difference between this and other, similar, projects is the emphasis on testing newer ! approaches to scoring messages. You can read all about SpamBayes on the project's website: *************** *** 45,54 **** ! I'm having trouble installing Spambayes. Help! ----------------------------------------------- ! Please ensure that you have the latest version. As of 2004-02-10, this is ! 1.0a9 for the source, and 0.9 for the binary installer for the Outlook ! plug-in and sb_server. If you are still having trouble, try looking at the bug reports that are currently open: --- 45,54 ---- ! I'm having trouble installing SpamBayes. Help! ----------------------------------------------- ! Please ensure that you have the latest version. As of 2004-04-13, this is ! 1.0b1 for both the source and for the binary installer (for the Outlook ! plug-in and sb_server). If you are still having trouble, try looking at the bug reports that are currently open: *************** *** 72,82 **** ! Subscribing to the Spambayes mailing list. ------------------------------------------ The spambayes@python.org mailing list formed in September 2002 to support ! development of the Spambayes spam filtering system as an outgrowth of earlier threads on the Python developers' mailing list. You can subscribe ! to the Spambayes mailing list using the form at http://mail.python.org/mailman/listinfo/spambayes --- 72,82 ---- ! Subscribing to the SpamBayes mailing list. ------------------------------------------ The spambayes@python.org mailing list formed in September 2002 to support ! development of the SpamBayes spam filtering system as an outgrowth of earlier threads on the Python developers' mailing list. You can subscribe ! to the SpamBayes mailing list using the form at http://mail.python.org/mailman/listinfo/spambayes Index: windows.ht =================================================================== RCS file: /cvsroot/spambayes/website/windows.ht,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** windows.ht 15 Feb 2004 05:04:37 -0000 1.35 --- windows.ht 13 Apr 2004 05:11:24 -0000 1.36 *************** *** 3,7 **** Author: spambayes !

Spambayes on Windows

This page has information for users of Microsoft Outlook, --- 3,7 ---- Author: spambayes !

SpamBayes on Windows

This page has information for users of Microsoft Outlook, *************** *** 11,17 ****

Latest Release

!

The latest release is Version 0.9 - see the ! release notes ! or download the installation program.

--- 11,17 ----

Latest Release

!

The latest release is 1.0b1 - see the ! release notes ! or download the installation program.

*************** *** 27,31 ****

In general, you should download and install the latest version, as shown above. Older versions and the release notes can be viewed at the ! spambayes releases page.

--- 27,31 ----

In general, you should download and install the latest version, as shown above. Older versions and the release notes can be viewed at the ! SpamBayes releases page.

*************** *** 67,71 ****

Once you have all three bits downloaded, run the Python installer then the win32all installer. Finally, double-click the addin.py script in the ! Outlook2000 folder of the Spambayes distribution and you should be good to go. See the README.txt file in the Outlook2000 directory for more details

--- 67,71 ----

Once you have all three bits downloaded, run the Python installer then the win32all installer. Finally, double-click the addin.py script in the ! Outlook2000 folder of the SpamBayes distribution and you should be good to go. See the README.txt file in the Outlook2000 directory for more details

*************** *** 74,78 ****

Windows users using other mail clients and retrieving mail via POP3 can now download the same ! installation program and use it to install a binary version of sb_server, including a tray application.

--- 74,78 ----

Windows users using other mail clients and retrieving mail via POP3 can now download the same ! installation program and use it to install a binary version of sb_server, including a tray application.

From mhammond at users.sourceforge.net Tue Apr 13 02:15:58 2004 From: mhammond at users.sourceforge.net (Mark Hammond) Date: Tue Apr 13 02:29:50 2004 Subject: [Spambayes-checkins] website download.ht,1.23,1.24 Message-ID: Update of /cvsroot/spambayes/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14131 Modified Files: download.ht Log Message: Reorg the download page a litte, and put the Windows binary near the top as this is likely to be the majority of people Index: download.ht =================================================================== RCS file: /cvsroot/spambayes/website/download.ht,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** download.ht 13 Apr 2004 05:11:24 -0000 1.23 --- download.ht 13 Apr 2004 06:15:56 -0000 1.24 *************** *** 3,15 **** Author: SpamBayes

Source Releases

!

Beta release 1 of version 1.0 of the SpamBayes project is now ! available. ! Download version 1.0b1 from the sourceforge Files ! page as either a gzipped tarball or a zip file of the source files. !

-

This release is primarily to shake out those last few bugs on the way to a 1.0 - release. Feedback to spambayes@python.org.

Prerequisites:

    Either: --- 3,24 ---- Author: SpamBayes +

    Beta release 1 of version 1.0 of the SpamBayes project is now available. +

    This release is primarily to shake out those last few bugs on the way to a final 1.0 + release. Feedback to spambayes@python.org. + +

    Microsoft Windows

    +

    Microsoft Windows users are encouraged to use the installation program to + install SpamBayes. This will install applications suitable for almost all + email clients, including Microsoft Outlook and Microsoft Outlook Express.

    + +

    Please see our Windows pages, or jump directly + to the + file releases for this project. +

    Source Releases

    !

    The source-code releases can be used on any platform with a Python interpreter

    !

    The source-code releases can be downloaded, as either a gzipped tarball or a zip file, directly from the ! file releases for this project.

    Prerequisites:

      Either: *************** *** 24,40 ****

      -

      Binary Releases

      -

      Outlook Plugin

      -

      Mark has packaged up a standalone installer of the Outlook plugin. Get it - from the Windows page on this site.

      - -

      sb_server

      -

      Windows users that get mail via POP3, who do not use Outlook, can now - get a standalone installer of sb_server. Get it from the - Windows page on this site.

      - -

      Other

      -

      None as yet.

      -

      CVS Access

      The code is currently available from sourceforge's CVS server - --- 33,36 ---- From montanaro at users.sourceforge.net Tue Apr 13 09:22:09 2004 From: montanaro at users.sourceforge.net (Skip Montanaro) Date: Tue Apr 13 09:36:05 2004 Subject: [Spambayes-checkins] spambayes/contrib sb_bnserver.py, 1.2, NONE sb_bnfilter.py, 1.3, NONE Message-ID: Update of /cvsroot/spambayes/spambayes/contrib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28578 Removed Files: sb_bnserver.py sb_bnfilter.py Log Message: moving to the scripts directory --- sb_bnserver.py DELETED --- --- sb_bnfilter.py DELETED --- From montanaro at users.sourceforge.net Tue Apr 13 09:22:48 2004 From: montanaro at users.sourceforge.net (Skip Montanaro) Date: Tue Apr 13 09:36:44 2004 Subject: [Spambayes-checkins] spambayes/scripts sb_bnfilter.py, NONE, 1.1 sb_bnserver.py, NONE, 1.1 Message-ID: Update of /cvsroot/spambayes/spambayes/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28737 Added Files: sb_bnfilter.py sb_bnserver.py Log Message: moving from contrib - old history is in the attic --- NEW FILE: sb_bnfilter.py --- #! /usr/bin/env python # This script has a similar interface and purpose to sb_filter, but avoids # re-initialising spambayes for consecutive requests using a short-lived # server process. This is intended to give the performance advantages of # sb_xmlrpcserver, without the administrative complications. # # The strategy is: # # * while we cant connect to a unix domain socket # * fork a separate process that runs in the background # * in the child process: # * exec sb_bnserver. it listens on that same unix domain socket. # * in the parent process: # * sleep a little, to give the child chance to start up # * write the filtering/training command line options to the socket # * copy the content of stdin to the socket # * meanwhile..... sb_bnserver gets to work on that data in the same manner # as sb_filter. it writes its response back through that socket # * read a line from the socket containing a success/failure code # * read a line from the socket containing a byte count # * copy the remainder of the content of the socket to stdout or stderr, # depending on whether it reported success or failure. # * if the number of bytes read from the socket is different to the byte # count, exit with an error # * if the reported exit code is non-zero, exit with an error # # sb_bnfilter will only terminate with a zero exit code if everything # is ok. If it terminates with a non-zero exit code then its stdout should # be ignored. # # sb_bnserver will close itself and remove its socket after a period of # inactivity to ensure it does not use up resources indefinitely. # # Author: Toby Dickenson # """Usage: %(program)s [options] Where: -h show usage and exit * -f filter (default if no processing options are given) * -g [EXPERIMENTAL] (re)train as a good (ham) message * -s [EXPERIMENTAL] (re)train as a bad (spam) message * -t [EXPERIMENTAL] filter and train based on the result -- you must make sure to untrain all mistakes later. Not recommended. * -G [EXPERIMENTAL] untrain ham (only use if you've already trained this message) * -S [EXPERIMENTAL] untrain spam (only use if you've already trained this message) -k FILE Unix domain socket used to communicate with a short-lived server process. Default is ~/.sbbnsock- These options will not take effect when connecting to a preloaded server: -p FILE use pickle FILE as the persistent store. loads data from this file if it exists, and saves data to this file at the end. -d FILE use DBM store FILE as the persistent store. -o section:option:value set [section, option] in the options database to value -a seconds timeout in seconds between requests before this server terminates -A number terminate this server after this many requests """ import sys, getopt, socket, errno, os, time def usage(code, msg=''): """Print usage message and sys.exit(code).""" if msg: print >> sys.stderr, msg print >> sys.stderr print >> sys.stderr, __doc__ sys.exit(code) def main(): try: opts, args = getopt.getopt(sys.argv[1:], 'hfgstGSd:p:o:a:A:k:') except getopt.error, msg: usage(2, msg) # build the default socket filename from environment variables filename = os.path.expanduser('~/.sbbnsock-'+socket.gethostname()) action_options = [] server_options = [] for opt, arg in opts: if opt == '-h': usage(0) elif opt in ('-f', '-g', '-s', '-t', '-G', '-S'): action_options.append(opt) elif opt in ('-d', '-p', '-o', '-a', '-A'): server_options.append(opt) server_options.append(arg) elif opt == '-k': filename = arg if len(args) != 0: usage(2) server_options.append(filename) s = make_socket(server_options, filename) # We have a connection to the existing shared server w_file = s.makefile('w') r_file = s.makefile('r') # pass our command line on the first line into the socket w_file.write(' '.join(action_options)+'\n') # copy entire contents of stdin into the socket while 1: b = sys.stdin.read(1024*64) if not b: break w_file.write(b) w_file.flush() w_file.close() s.shutdown(1) # expect to get back a line containing the size of the rest of the response error = int(r_file.readline()) expected_size = int(r_file.readline()) if error: output = sys.stderr else: output = sys.stdout total_size = 0 # copy entire contents of socket into stdout or stderr while 1: b = r_file.read(1024*64) if not b: break output.write(b) total_size += len(b) output.flush() # If we didnt receive the right amount then something has gone wrong. # exit now, and procmail will ignore everything we have sent to stdout. # Note that this policy is different to the xmlrpc client, which # tries to handle errors internally by constructing a stdout that is # the same as stdin was. if total_size != expected_size: print >> sys.stderr, 'size mismatch %d != %d' % (total_size, expected_size) sys.exit(3) if error: sys.exit(error) def make_socket(server_options, file): refused_count = 0 no_server_count = 0 while 1: try: s = socket.socket(socket.AF_UNIX,socket.SOCK_STREAM) s.connect(file) except socket.error,e: if e[0] == errno.EAGAIN: # baaah pass elif e[0] == errno.ENOENT: # no such file.... no such server. create one. no_server_count += 1 if no_server_count>4: raise fork_server(server_options) elif e[0] == errno.ECONNREFUSED: # socket file exists but noone listening. refused_count += 1 if refused_count == 6: # We have been waiting ages and still havent been able # to connect. Maybe that socket file has got # orphaned. remove it, wait, and try again. We need to # allow enough time for sb_bnserver to initialise the # rest of spambayes try: os.unlink(file) except EnvironmentError: pass elif refused_count>6: raise else: raise # some other problem time.sleep(0.2 * 2.0**no_server_count * 2.0**refused_count) else: return s def fork_server(options): if os.fork(): # parent return os.close(0) sys.stdin = sys.__stdin__ = open("/dev/null") os.close(1) sys.stdout = sys.__stdout__ = open("/dev/null", "w") # leave stderr # os.close(2) # sys.stderr = sys.__stderr__ = open("/dev/null", "w") os.setsid() # Use exec rather than import here because eventually it may be nice to # reimplement this one file in C os.execv(sys.executable,[sys.executable, os.path.join(os.path.split(sys.argv[0])[0], 'sb_bnserver.py') ]+options) # should never get here sys._exit(1) if __name__ == "__main__": main() --- NEW FILE: sb_bnserver.py --- #! /usr/bin/env python # Another server version of hammie.py # This is not intended to be run manually, it is the opportunistic # daemon backend of sb_bnfilter. # # Author: Toby Dickenson # """Usage: %(program)s [options] FILE Where: -h show usage and exit -p FILE use pickle FILE as the persistent store. loads data from this file if it exists, and saves data to this file at the end. -d FILE use DBM store FILE as the persistent store. -o section:option:value set [section, option] in the options database to value -a seconds timeout in seconds between requests before this server terminates -A number terminate this server after this many requests FILE unix domain socket used on which we listen """ import os, getopt, sys, SocketServer, time, traceback, select, socket, errno try: True, False except NameError: # Maintain compatibility with Python 2.2 True, False = 1, 0 # See Options.py for explanations of these properties program = sys.argv[0] def usage(code, msg=''): """Print usage message and sys.exit(code).""" if msg: print >> sys.stderr, msg print >> sys.stderr print >> sys.stderr, __doc__ sys.exit(code) def main(): """Main program; parse options and go.""" try: opts, args = getopt.getopt(sys.argv[1:], 'hd:p:o:a:A:') except getopt.error, msg: usage(2, msg) if len(args) != 1: usage(2, "socket not specified") # get the server up before initializing spambayes, so that # we havent wasted time if we later find we cant start the server try: server = BNServer(args[0], BNRequest) except socket.error,e: if e[0]==errno.EADDRINUSE: pass # in use, no need else: raise # a real error else: try: from spambayes import Options, storage options = Options.options for opt, arg in opts: if opt == '-h': usage(0) elif opt == '-o': options.set_from_cmdline(arg, sys.stderr) elif opt == '-a': server.timeout = float(arg) elif opt == '-A': server.number = int(arg) h = make_HammieFilter() h.dbname, h.usedb = storage.database_type(opts) server.hammie = h server.serve_until_idle() h.close() finally: try: os.unlink(args[0]) except EnvironmentError: pass class NowIdle(Exception): pass class BNServer(SocketServer.UnixStreamServer): allow_reuse_address = True timeout = 10.0 number = 100 def serve_until_idle(self): try: for i in range(self.number): self.handle_request() except NowIdle: pass def get_request(self): r,w,e = select.select([self.socket], [], [], self.timeout) if r: return self.socket.accept() else: raise NowIdle() class BNRequest(SocketServer.StreamRequestHandler): def handle(self): switches = self.rfile.readline() body = self.rfile.read() try: response = self._calc_response(switches,body) self.wfile.write('0\n%d\n'%(len(response),)) self.wfile.write(response) except: response = traceback.format_exception_only(sys.exc_info()[0],sys.exc_info()[1])[0] self.wfile.write('1\n%d\n'%(len(response),)) self.wfile.write(response) def _calc_response(self,switches,body): switches = switches.split() actions = [] opts, args = getopt.getopt(switches, 'fgstGS') h = self.server.hammie for opt, arg in opts: if opt == '-f': actions.append(h.filter) elif opt == '-g': actions.append(h.train_ham) elif opt == '-s': actions.append(h.train_spam) elif opt == '-t': actions.append(h.filter_train) elif opt == '-G': actions.append(h.untrain_ham) elif opt == '-S': actions.append(h.untrain_spam) if actions == []: actions = [h.filter] from spambayes import mboxutils msg = mboxutils.get_message(body) for action in actions: action(msg) return msg.as_string(1) def make_HammieFilter(): # The sb_hammie script has some logic in the HammieFiler class that we need here too. # Ideally that should be moved into the spambayes package, but for now lets just # abuse sys.path, make assumptions about the directory layout, and import it direct # from the sb_filter script. from spambayes import Options path = os.path.split(Options.__file__)[0]+'/../scripts' if path not in sys.path: sys.path.append(path) from sb_filter import HammieFilter return HammieFilter() if __name__ == "__main__": main() From montanaro at users.sourceforge.net Tue Apr 13 09:24:13 2004 From: montanaro at users.sourceforge.net (Skip Montanaro) Date: Tue Apr 13 09:38:10 2004 Subject: [Spambayes-checkins] spambayes setup.py,1.29,1.30 Message-ID: Update of /cvsroot/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29084 Modified Files: setup.py Log Message: sb_bnserver.py needs to be installed so sb_bnfilter.py can fire it up. Index: setup.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/setup.py,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** setup.py 12 Apr 2004 01:41:34 -0000 1.29 --- setup.py 13 Apr 2004 13:24:11 -0000 1.30 *************** *** 79,82 **** --- 79,83 ---- 'scripts/sb_filter.py', 'scripts/sb_bnfilter.py', + 'scripts/sb_bnserver.py', 'scripts/sb_imapfilter.py', 'scripts/sb_mailsort.py', From kpitt at users.sourceforge.net Fri Apr 16 15:10:37 2004 From: kpitt at users.sourceforge.net (Kenny Pitt) Date: Fri Apr 16 15:10:45 2004 Subject: [Spambayes-checkins] website faq.txt,1.68,1.69 Message-ID: Update of /cvsroot/spambayes/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11252 Modified Files: faq.txt Log Message: Add FAQ about deleting messages from the Spam folder in Outlook. Index: faq.txt =================================================================== RCS file: /cvsroot/spambayes/website/faq.txt,v retrieving revision 1.68 retrieving revision 1.69 diff -C2 -d -r1.68 -r1.69 *** faq.txt 13 Apr 2004 04:30:54 -0000 1.68 --- faq.txt 16 Apr 2004 19:10:34 -0000 1.69 *************** *** 734,737 **** --- 734,750 ---- + Is it OK to delete the messages in the Spam folder? + --------------------------------------------------- + + If SpamBayes identifies a message correctly then it is fine to delete it. + After a message is identified, SpamBayes only uses the message if you need + to train an unsure or incorrect identification. + + It is also safe to delete any messages that you have already trained on using + the "Delete as Spam" and "Recover from Spam" buttons. All the information + that SpamBayes needs to know about trained messages is stored in a separate + file. + + Using SpamBayes =============== From anadelonbrin at users.sourceforge.net Fri Apr 16 18:09:29 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Fri Apr 16 18:09:34 2004 Subject: [Spambayes-checkins] website faq.txt,1.69,1.70 quotes.ht,1.8,1.9 Message-ID: Update of /cvsroot/spambayes/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17452 Modified Files: faq.txt quotes.ht Log Message: Make the quotes page more consistent in its formatting. Add a link between the two 'can I delete the spam after training' questions. Index: faq.txt =================================================================== RCS file: /cvsroot/spambayes/website/faq.txt,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** faq.txt 16 Apr 2004 19:10:34 -0000 1.69 --- faq.txt 16 Apr 2004 22:09:14 -0000 1.70 *************** *** 744,748 **** the "Delete as Spam" and "Recover from Spam" buttons. All the information that SpamBayes needs to know about trained messages is stored in a separate ! file. --- 744,751 ---- the "Delete as Spam" and "Recover from Spam" buttons. All the information that SpamBayes needs to know about trained messages is stored in a separate ! file. The information in the `non-Outlook version of this question`_ also ! applies, and may be of interest. ! ! .. _`non-Outlook version of this question`: #do-i-need-to-keep-spam-after-it-has-been-trained-if-so-for-how-long Index: quotes.ht =================================================================== RCS file: /cvsroot/spambayes/website/quotes.ht,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** quotes.ht 15 Oct 2003 22:58:42 -0000 1.8 --- quotes.ht 16 Apr 2004 22:09:14 -0000 1.9 *************** *** 34,38 ****

      ! It's been extraordinarily effective...it catches 99% of my spam Larry Fresinski of Cornell University's Johnson Graduate School of Management in two recent --- 34,38 ----

      ! It's been extraordinarily effective...it catches 99% of my spam
      Larry Fresinski of Cornell University's Johnson Graduate School of Management in two recent *************** *** 41,45 ****

      ! SpamBayes is currently the best solution to the spam problem. In fact, after I started using it I hardly notice there is a spam problem at all Kristian Eide in a review comparing POPFile and Spambayes --- 41,45 ----

      ! SpamBayes is currently the best solution to the spam problem. In fact, after I started using it I hardly notice there is a spam problem at all
      Kristian Eide in a review comparing POPFile and Spambayes *************** *** 47,51 ****

      ! Now you know a simple way to regain absolute control of your Inbox Corey Nachreiner in "Keep Spam at Bay with SpamBayes", a WatchGuard LiveSecurity column

      --- 47,51 ----

      ! Now you know a simple way to regain absolute control of your Inbox
      Corey Nachreiner in "Keep Spam at Bay with SpamBayes", a WatchGuard LiveSecurity column

      *************** *** 54,58 **** I have to say I'm very happy with its performance...The documentation on the SpamBayes site is very good...It is very much worth the time to ! train and use SpamBayes. Chris DiBona in a TechTV article.

      --- 54,58 ---- I have to say I'm very happy with its performance...The documentation on the SpamBayes site is very good...It is very much worth the time to ! train and use SpamBayes.
      Chris DiBona in a TechTV article.

      *************** *** 61,65 **** Words can't fully describe the elation I feel when I boot up my computer in the morning, launch Outlook and watch 75 or so e-mails download, only to see two-thirds of them immediately ! and automatically leave my inbox and enter the spam folder! Brian Dipert in an article in EDN Magazine. --- 61,65 ---- Words can't fully describe the elation I feel when I boot up my computer in the morning, launch Outlook and watch 75 or so e-mails download, only to see two-thirds of them immediately ! and automatically leave my inbox and enter the spam folder!
      Brian Dipert in an article in EDN Magazine. *************** *** 70,74 **** while 2002 topped out at about 65 percent, an increase of 20 percent more junk e-mail filtered. That said, free open-source filters like SpamBayes ! can block about 98 percent of spam. Michelle Delio praising the improvements in Outlook's built-in spam filtering in a Wired News article. --- 70,74 ---- while 2002 topped out at about 65 percent, an increase of 20 percent more junk e-mail filtered. That said, free open-source filters like SpamBayes ! can block about 98 percent of spam.
      Michelle Delio praising the improvements in Outlook's built-in spam filtering in a Wired News article. From htrd at users.sourceforge.net Tue Apr 20 05:26:07 2004 From: htrd at users.sourceforge.net (Toby Dickenson) Date: Tue Apr 20 05:26:14 2004 Subject: [Spambayes-checkins] spambayes/scripts sb_bnfilter.py,1.1,1.2 Message-ID: Update of /cvsroot/spambayes/spambayes/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14971 Modified Files: sb_bnfilter.py Log Message: linux kernel 2.2 returns the wrong error code if the socket file does not exist. Thanks to Remi Ricard for testing the patch Index: sb_bnfilter.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/scripts/sb_bnfilter.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** sb_bnfilter.py 13 Apr 2004 13:22:45 -0000 1.1 --- sb_bnfilter.py 20 Apr 2004 09:25:59 -0000 1.2 *************** *** 169,173 **** # baaah pass ! elif e[0] == errno.ENOENT: # no such file.... no such server. create one. no_server_count += 1 --- 169,176 ---- # baaah pass ! elif e[0] == errno.ENOENT or not os.path.exists(file): ! # We need to check os.path.exists for use on operating systems that ! # never return ENOENT; linux 2.2. ! # # no such file.... no such server. create one. no_server_count += 1 From anadelonbrin at users.sourceforge.net Fri Apr 23 00:16:27 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Fri Apr 23 00:16:30 2004 Subject: [Spambayes-checkins] spambayes/Outlook2000/dialogs dialog_map.py, 1.37, 1.38 Message-ID: Update of /cvsroot/spambayes/spambayes/Outlook2000/dialogs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11788/Outlook2000/dialogs Modified Files: dialog_map.py Log Message: Fix [ 940155 ] Data Folder location The "show data folder" button in the Manager dialog brought up the Windows data directory, rather than the SpamBayes one (usually the same, but not always). It's arguable which one is correct, but I think the most common use for this button is to find the databases and configuration files, and so data_directory rather than windows_data_directory is what we are after. All that would be in the other one (that is used) is the default_configuration.ini file (if it's not in the SpamBayes program directory), and anyone using that can find it by hand, I hope. If you disagree which folder, Mark, at least this is easy to back out ;) Index: dialog_map.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/Outlook2000/dialogs/dialog_map.py,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** dialog_map.py 27 Feb 2004 02:52:50 -0000 1.37 --- dialog_map.py 23 Apr 2004 04:16:24 -0000 1.38 *************** *** 236,240 **** """ import os ! os.startfile(window.manager.windows_data_directory) def ShowLog(window): """Opens the log file for the current SpamBayes session --- 236,240 ---- """ import os ! os.startfile(window.manager.data_directory) def ShowLog(window): """Opens the log file for the current SpamBayes session From anadelonbrin at users.sourceforge.net Sat Apr 24 23:45:33 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Sat Apr 24 23:45:37 2004 Subject: [Spambayes-checkins] spambayes/scripts sb_imapfilter.py,1.28,1.29 Message-ID: Update of /cvsroot/spambayes/spambayes/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19447/scripts Modified Files: sb_imapfilter.py Log Message: If the move_trained_[ham|spam]_to_folder options were used, this would wipe out the SpamBayes headers. Fix that. Update message.py for the newer way that the persistent_use_database option works. Index: sb_imapfilter.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/scripts/sb_imapfilter.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** sb_imapfilter.py 16 Mar 2004 07:04:31 -0000 1.28 --- sb_imapfilter.py 25 Apr 2004 03:45:30 -0000 1.29 *************** *** 667,670 **** --- 667,671 ---- if msg.GetTrained() is None: msg.get_substance() + saved_headers = msg.currentSBHeaders() msg.delSBHeaders() classifier.learn(msg.asTokens(), isSpam) *************** *** 676,679 **** --- 677,683 ---- move_opt_name = "move_trained_ham_to_folder" if options["imap", move_opt_name] != "": + # We need to restore the SpamBayes headers. + for header, value in saved_headers.items(): + msg[header] = value msg.MoveTo(IMAPFolder(options["imap", move_opt_name])) From anadelonbrin at users.sourceforge.net Sat Apr 24 23:45:33 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Sat Apr 24 23:45:39 2004 Subject: [Spambayes-checkins] spambayes/spambayes message.py,1.48,1.49 Message-ID: Update of /cvsroot/spambayes/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19447/spambayes Modified Files: message.py Log Message: If the move_trained_[ham|spam]_to_folder options were used, this would wipe out the SpamBayes headers. Fix that. Update message.py for the newer way that the persistent_use_database option works. Index: message.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/spambayes/message.py,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** message.py 15 Feb 2004 23:30:49 -0000 1.48 --- message.py 25 Apr 2004 03:45:30 -0000 1.49 *************** *** 206,212 **** # Once there is a master db, this option can be removed. message_info_db_name = get_pathname_option("Storage", "messageinfo_storage_file") ! if options["Storage", "persistent_use_database"]: msginfoDB = MessageInfoDB(message_info_db_name) ! else: msginfoDB = MessageInfoPickle(message_info_db_name) --- 206,214 ---- # Once there is a master db, this option can be removed. message_info_db_name = get_pathname_option("Storage", "messageinfo_storage_file") ! if options["Storage", "persistent_use_database"] is True or \ ! options["Storage", "persistent_use_database"] == "dbm": msginfoDB = MessageInfoDB(message_info_db_name) ! elif options["Storage", "persistent_use_database"] is False or \ ! options["Storage", "persistent_use_database"] == "pickle": msginfoDB = MessageInfoPickle(message_info_db_name) *************** *** 429,432 **** --- 431,452 ---- self[options['Headers','mailid_header_name']] = self.id + def currentSBHeaders(self): + """Return a dictionary containing the current values of the + SpamBayes headers. This can be used to restore the values + after using the delSBHeaders() function.""" + headers = {} + for header_name in [options['Headers','classification_header_name'], + options['Headers','mailid_header_name'], + options['Headers','classification_header_name'] + "-ID", + options['Headers','thermostat_header_name'], + options['Headers','evidence_header_name'], + options['Headers','score_header_name'], + options['Headers','trained_header_name'], + ]: + value = self[header_name] + if value is not None: + headers[header_name] = value + return headers + def delSBHeaders(self): del self[options['Headers','classification_header_name']] From anadelonbrin at users.sourceforge.net Sun Apr 25 00:01:34 2004 From: anadelonbrin at users.sourceforge.net (Tony Meyer) Date: Sun Apr 25 00:01:38 2004 Subject: [Spambayes-checkins] spambayes/testtools .cvsignore,1.1,1.2 Message-ID: Update of /cvsroot/spambayes/spambayes/testtools In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21627/testtools Modified Files: .cvsignore Log Message: Ignore the data directory (and anything in it). Index: .cvsignore =================================================================== RCS file: /cvsroot/spambayes/spambayes/testtools/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** .cvsignore 11 Jan 2004 03:37:55 -0000 1.1 --- .cvsignore 25 Apr 2004 04:01:26 -0000 1.2 *************** *** 1,2 **** --- 1,3 ---- *.py[co] *.ini + Data \ No newline at end of file From montanaro at users.sourceforge.net Tue Apr 27 07:47:39 2004 From: montanaro at users.sourceforge.net (Skip Montanaro) Date: Tue Apr 27 07:47:43 2004 Subject: [Spambayes-checkins] website faq.txt,1.70,1.71 Message-ID: Update of /cvsroot/spambayes/website In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10375 Modified Files: faq.txt Log Message: Added Amir Katz's short treatise on setting up Eudora filters on Windows, embellished slightly with information about filter setup on Mac OS X. Index: faq.txt =================================================================== RCS file: /cvsroot/spambayes/website/faq.txt,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -d -r1.70 -r1.71 *** faq.txt 16 Apr 2004 22:09:14 -0000 1.70 --- faq.txt 27 Apr 2004 11:47:36 -0000 1.71 *************** *** 384,388 **** Note: The following instructions have been verified using Eudora 5.1 ! under Windows. If anyone is using Eudora under Max OS please let us know if the configuration is the same as Windows. --- 384,388 ---- Note: The following instructions have been verified using Eudora 5.1 ! under Windows. If anyone is using Eudora under Mac OS X please let us know if the configuration is the same as Windows. *************** *** 448,451 **** --- 448,496 ---- + How do I set up Eudora Filters to distribute mail to separate mailboxes? + ------------------------------------------------------------------------ + + Note: the following instructions have been verified using Eudora 6.0.2, + Sponsored mode under Windows, and Eudora 6.1, Sponsorede mode under Mac OS + X. + + 1. Open Eudora + + 2. Create the desired mailboxes for distributing sorted incoming mail, + for example, "IN" for ham, "UNSURE" for unsure and "SPAM" for spam + (or directly to "TRASH" if you don't care to check up on SpamBayes' + work). + + 3. Select TOOLS, FILTERS. (On Mac OS X, select Filters from the Window + menu in the toolbar.) + + 4. Click NEW + + 5. In "Match" area, check "Incoming" + + 6. In "Header" box, type in: "X-Spambayes-Classification:" + + 7. In following drop-down box, select "is" + + 8. In box immediately following, type "ham" ("spam", "unsure") + + 9. In next drop-down box, select "ignore". As a result, you may ignore + what is in the next level Header - action - text boxes. + + 10. In "Action" area, top drop-down box, select "Transfer to" + + 11. In target area immediately to the right, click, and select desired + target mailbox to match choice in 8. (On Mac OS X, you will be prompted + to select a mailbox from the Transfer menu in the toolbar.) + + 12. Repeat steps 4 through 11 for the other two mailboxes, substituting + "spam" or "unsure" for "ham" in step 8. + + 13. Right click highlighted "Filters" box below (not the "filters" tab) + and select "close"; answer "yes" to "Save changes to filters?" (Not + required on Mac OS X. Just close the dialog. You will be prompted to + save the filters you've created.) + + Will SpamBayes work with Yahoo! Mail? ------------------------------------- From montanaro at users.sourceforge.net Tue Apr 27 23:29:48 2004 From: montanaro at users.sourceforge.net (Skip Montanaro) Date: Tue Apr 27 23:29:53 2004 Subject: [Spambayes-checkins] spambayes/contrib tte.py,1.8,1.9 Message-ID: Update of /cvsroot/spambayes/spambayes/contrib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12083 Modified Files: tte.py Log Message: add -R/--reverse flag to iterate over the mailboxes in reverse Index: tte.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/contrib/tte.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tte.py 16 Mar 2004 01:05:33 -0000 1.8 --- tte.py 28 Apr 2004 03:29:46 -0000 1.9 *************** *** 34,37 **** --- 34,39 ---- -v Be very verbose, spewing all sorts of stuff out to stderr. + -R Walk backwards through the mailbox. + Note: The -c command line argument isn't quite as benign as it might first *************** *** 81,85 **** print >> sys.stderr, __doc__.strip() % globals() ! def train(store, ham, spam, maxmsgs, maxrounds, tdict, verbose): smisses = hmisses = round = 0 ham_cutoff = Options.options["Categorization", "ham_cutoff"] --- 83,87 ---- print >> sys.stderr, __doc__.strip() % globals() ! def train(store, ham, spam, maxmsgs, maxrounds, tdict, reverse, verbose): smisses = hmisses = round = 0 ham_cutoff = Options.options["Categorization", "ham_cutoff"] *************** *** 89,92 **** --- 91,97 ---- hambone = mboxutils.getmbox(ham) spamcan = mboxutils.getmbox(spam) + if reverse: + hambone = reversed(list(hambone)) + spamcan = reversed(list(spamcan)) round += 1 *************** *** 153,161 **** def main(args): try: ! opts, args = getopt.getopt(args, "hg:s:d:p:o:m:r:c:v", ["help", "good=", "spam=", "database=", "pickle=", "verbose", "option=", "max=", "maxrounds=", ! "cullext="]) except getopt.GetoptError, msg: usage(msg) --- 158,166 ---- def main(args): try: ! opts, args = getopt.getopt(args, "hg:s:d:p:o:m:r:c:vR", ["help", "good=", "spam=", "database=", "pickle=", "verbose", "option=", "max=", "maxrounds=", ! "cullext=", "reverse"]) except getopt.GetoptError, msg: usage(msg) *************** *** 166,169 **** --- 171,175 ---- maxrounds = MAXROUNDS verbose = False + reverse = False for opt, arg in opts: if opt in ("-h", "--help"): *************** *** 182,185 **** --- 188,193 ---- elif opt in ("-r", "--maxrounds"): maxrounds = int(arg) + elif opt in ("-R", "--reverse"): + reverse = True elif opt in ('-o', '--option'): Options.options.set_from_cmdline(arg, sys.stderr) *************** *** 199,203 **** tdict = {} ! train(store, ham, spam, maxmsgs, maxrounds, tdict, verbose) store.store() --- 207,211 ---- tdict = {} ! train(store, ham, spam, maxmsgs, maxrounds, tdict, reverse, verbose) store.store() From tim_one at users.sourceforge.net Tue Apr 27 23:42:44 2004 From: tim_one at users.sourceforge.net (Tim Peters) Date: Tue Apr 27 23:42:49 2004 Subject: [Spambayes-checkins] spambayes LICENSE.txt,1.2,1.3 Message-ID: Update of /cvsroot/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14000 Modified Files: LICENSE.txt Log Message: New year (heh -- missed it by a few hours), new copyright. Index: LICENSE.txt =================================================================== RCS file: /cvsroot/spambayes/spambayes/LICENSE.txt,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** LICENSE.txt 26 May 2003 01:53:00 -0000 1.2 --- LICENSE.txt 28 Apr 2004 03:42:41 -0000 1.3 *************** *** 1,3 **** ! Copyright (C) 2002-2003 Python Software Foundation; All Rights Reserved The Python Software Foundation (PSF) holds copyright on all material --- 1,3 ---- ! Copyright (C) 2002-2004 Python Software Foundation; All Rights Reserved The Python Software Foundation (PSF) holds copyright on all material From tim_one at users.sourceforge.net Tue Apr 27 23:43:43 2004 From: tim_one at users.sourceforge.net (Tim Peters) Date: Tue Apr 27 23:43:47 2004 Subject: [Spambayes-checkins] spambayes LICENSE.txt,1.3,1.4 Message-ID: Update of /cvsroot/spambayes/spambayes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14149 Modified Files: LICENSE.txt Log Message: Updated another year in the license. Index: LICENSE.txt =================================================================== RCS file: /cvsroot/spambayes/spambayes/LICENSE.txt,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** LICENSE.txt 28 Apr 2004 03:42:41 -0000 1.3 --- LICENSE.txt 28 Apr 2004 03:43:41 -0000 1.4 *************** *** 18,22 **** alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) ! 2002-2003 Python Software Foundation; All Rights Reserved" are retained the Software alone or in any derivative version prepared by Licensee. --- 18,22 ---- alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) ! 2002-2004 Python Software Foundation; All Rights Reserved" are retained the Software alone or in any derivative version prepared by Licensee. From mhammond at users.sourceforge.net Wed Apr 28 18:30:16 2004 From: mhammond at users.sourceforge.net (Mark Hammond) Date: Wed Apr 28 18:30:38 2004 Subject: [Spambayes-checkins] spambayes/Outlook2000/dialogs/resources dialogs.rc, 1.44, 1.45 Message-ID: Update of /cvsroot/spambayes/spambayes/Outlook2000/dialogs/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3226/resources Modified Files: dialogs.rc Log Message: Change the default pushbutton in the "filter now" dialog to be the start button, and make ESC work as cancel. Index: dialogs.rc =================================================================== RCS file: /cvsroot/spambayes/spambayes/Outlook2000/dialogs/resources/dialogs.rc,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** dialogs.rc 23 Dec 2003 06:00:13 -0000 1.44 --- dialogs.rc 28 Apr 2004 22:30:12 -0000 1.45 *************** *** 577,582 **** 129,230,11 LTEXT "Static",IDC_PROGRESS_TEXT,7,144,227,10 ! PUSHBUTTON "Start Filtering",IDC_START,7,161,52,14 ! DEFPUSHBUTTON "Close",IDOK,187,162,50,14 END --- 577,582 ---- 129,230,11 LTEXT "Static",IDC_PROGRESS_TEXT,7,144,227,10 ! DEFPUSHBUTTON "Start Filtering",IDC_START,7,161,52,14 ! PUSHBUTTON "Close",IDCANCEL,187,162,50,14 END From mhammond at users.sourceforge.net Wed Apr 28 18:30:16 2004 From: mhammond at users.sourceforge.net (Mark Hammond) Date: Wed Apr 28 18:30:40 2004 Subject: [Spambayes-checkins] spambayes/Outlook2000/dialogs dialog_map.py, 1.38, 1.39 Message-ID: Update of /cvsroot/spambayes/spambayes/Outlook2000/dialogs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3226 Modified Files: dialog_map.py Log Message: Change the default pushbutton in the "filter now" dialog to be the start button, and make ESC work as cancel. Index: dialog_map.py =================================================================== RCS file: /cvsroot/spambayes/spambayes/Outlook2000/dialogs/dialog_map.py,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** dialog_map.py 23 Apr 2004 04:16:24 -0000 1.38 --- dialog_map.py 28 Apr 2004 22:30:13 -0000 1.39 *************** *** 417,421 **** ), "IDD_FILTER_NOW" : ( ! (CloseButtonProcessor, "IDOK"), (BoolButtonProcessor, "IDC_BUT_UNREAD", "Filter_Now.only_unread"), (BoolButtonProcessor, "IDC_BUT_UNSEEN", "Filter_Now.only_unseen"), --- 417,421 ---- ), "IDD_FILTER_NOW" : ( ! (CloseButtonProcessor, "IDCANCEL"), (BoolButtonProcessor, "IDC_BUT_UNREAD", "Filter_Now.only_unread"), (BoolButtonProcessor, "IDC_BUT_UNSEEN", "Filter_Now.only_unseen"), *************** *** 428,432 **** filter.filterer, "Start Filtering", "Stop Filtering", ! """IDOK IDC_BUT_UNSEEN IDC_BUT_UNREAD IDC_BROWSE IDC_BUT_ACT_SCORE IDC_BUT_ACT_ALL"""), --- 428,432 ---- filter.filterer, "Start Filtering", "Stop Filtering", ! """IDCANCEL IDC_BUT_UNSEEN IDC_BUT_UNREAD IDC_BROWSE IDC_BUT_ACT_SCORE IDC_BUT_ACT_ALL"""),