From mhammond at skippinet.com.au Mon Jul 10 03:53:26 2006 From: mhammond at skippinet.com.au (Mark Hammond) Date: Mon, 10 Jul 2006 11:53:26 +1000 Subject: [spambayes-dev] [Spambayes] SpamBayes installation error In-Reply-To: <7FE2AEA459AE5749BFA0DC64F60DE5F01EC5A0@SERVER1.dmsdies.local> Message-ID: <29f801c6a3c3$a30594c0$100a0a0a@enfoldsystems.local> Hi all, I'm redirecting this support request to the -dev list. According to my CVS logs, the FlashWindowEx problem with NT was fixed back in October 2004, and the fix included with pywin32-203. I've just confirmed that build 208 of pywin32 does successfully load win32gui on NT. Is it possible that 1.0rc2 was shipped with pywin32-202 or earlier? If there is some issue preventing an upgrade to pywin32, let me know and I'll help resolve it. Cheers, Mark -----Original Message----- From: spambayes-bounces at python.org [mailto:spambayes-bounces at python.org]On Behalf Of Gregg Yauch Sent: Sunday, 9 July 2006 12:01 AM To: spambayes at python.org Subject: [Spambayes] SpamBayes installation error I'm trying to install SpamBayes 1.0rc2 on a WinNT4 pc with Outlook 2000. I get the following error: "The procedure entry point FlashWindowEx could not be located in the dynamic link library USER32.dll" The outlook_addin_register.exe.log file reads: Traceback (most recent call last): File "addin.py", line 40, in ? File "win32gui.pyc", line 9, in ? File "win32gui.pyc", line 7, in __load ImportError: DLL load failed: The specified procedure could not be found. Any ideas? Thank you, Gregg Yauch From tameyer at ihug.co.nz Mon Jul 10 11:36:52 2006 From: tameyer at ihug.co.nz (Tony Meyer) Date: Mon, 10 Jul 2006 21:36:52 +1200 Subject: [spambayes-dev] [Spambayes] SpamBayes installation error In-Reply-To: <29f801c6a3c3$a30594c0$100a0a0a@enfoldsystems.local> References: <29f801c6a3c3$a30594c0$100a0a0a@enfoldsystems.local> Message-ID: <0B3F2203-A33D-4E31-A868-AA990DFB3EFB@ihug.co.nz> >> I'm trying to install SpamBayes 1.0rc2 on a WinNT4 pc with Outlook >> 2000. I >> get the following error: [...] > I'm redirecting this support request to the -dev list. According > to my > CVS logs, the FlashWindowEx problem with NT was fixed back in > October 2004, > and the fix included with pywin32-203. I've just confirmed that > build 208 > of pywin32 does successfully load win32gui on NT. > > Is it possible that 1.0rc2 was shipped with pywin32-202 or > earlier? If > there is some issue preventing an upgrade to pywin32, let me know > and I'll > help resolve it. It seems to me that the better question is: why is Gregg using 1.0rc2 (June 26, 2004), rather than the latest stable version (1.0.4, March 24, 2005)? FWIW, given those dates, I expect the answer to your question is "yes" (unless you snuck in an unreleased pywin32 into 1.0rc2; too long ago for me to remember). =Tony.Meyer From mhammond at skippinet.com.au Mon Jul 10 12:51:05 2006 From: mhammond at skippinet.com.au (Mark Hammond) Date: Mon, 10 Jul 2006 20:51:05 +1000 Subject: [spambayes-dev] [Spambayes] SpamBayes installation error In-Reply-To: <0B3F2203-A33D-4E31-A868-AA990DFB3EFB@ihug.co.nz> Message-ID: <2b0801c6a40e$c00ca770$100a0a0a@enfoldsystems.local> > > Is it possible that 1.0rc2 was shipped with pywin32-202 or > > earlier? If > > there is some issue preventing an upgrade to pywin32, let me know > > and I'll > > help resolve it. > > It seems to me that the better question is: why is Gregg using > 1.0rc2 (June 26, 2004), rather than the latest stable version > (1.0.4, March 24, 2005)? Ack - sorry about that - I know I *meant* to check that before mailing :) Mark From kenny.pitt at gmail.com Fri Jul 14 22:40:10 2006 From: kenny.pitt at gmail.com (Kenny Pitt) Date: Fri, 14 Jul 2006 16:40:10 -0400 Subject: [spambayes-dev] [Spambayes] ZeroDivisionError with hammie.score() In-Reply-To: <226d83de0607131923g947a55ch466c24f2e7c830a7@mail.gmail.com> References: <226d83de0607131923g947a55ch466c24f2e7c830a7@mail.gmail.com> Message-ID: <2a052b990607141340m2282fe05w322547a022aefa3b@mail.gmail.com> [I'm moving this over to spambayes-dev because it deals more with the code] On 7/13/06, Todd Kennedy wrote: > I'm trying to integrate the spambayes package into my blogging > software as a comment spam filter. I've read through a bunch of the > source, looked at the scripts provided and stuff and have a > rudimentary understanding of how the software works. (i think). but > i'm getting a ZeroDivisionError when I try to run the score method of > hammie. > > [...] > > The exception occurs at: > File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/classifier.py", > line 320, in probability > prob = spamratio / (hamratio + spamratio) > ZeroDivisionError: float division > > I put in some simple print statements to print out nham, nspam, > spamcount and hamcount. this is their output: > 22:14:52 (~) > todd at mothra> ./test_sp.py > spamcount 6 > hamcount 6 > nham 6 > nspam 6 > spamcount 6 > hamcount 6 > spamcount 6 > hamcount 6 > spamcount 6 > hamcount 6 > spamcount 0 > hamcount 0 > nham 6 > nspam 6 > > why would spamcount and hamcount go to 0? >From the WordInfo class comments in classifier.py: # ... spamcount is the # number of trained spam msgs in which the word appears, and hamcount # the number of trained ham msgs. So spamcount would be 0 if the current word has never been seen in a trained spam message, and similarly for hamcount. A word will only appear in the training database if it has appeared in at least one message so you should never have a word with both counts 0. The _worddistanceget() function in the Classifier class deals with this by assigning a default probability to any word that does not appear in the training data, so the probability calculation should only run on trained words. It's hard to say how the code might have ended up in the probability() function with a word that wasn't in the training data. It might help to print which word produced each of the spamcount/hamcount pairs and compare those against the training data to see if there are any that don't appear in the training. It would also be interesting to know if you have ever tried to remove a message from the training data (i.e. untrain the message). When a message is removed, each word is checked to see if both counts have gone to 0 (see the _remove_msg function) and the word should be removed from the training data in that case. I see that you are using the Postgres storage engine. I'm guessing a little here, but I don't think Postgres has received as much testing as some of the other storage formats so it might be possible that the record didn't actually get deleted from the training database once both counts went to 0. -- Kenny Pitt From todd.kennedy at gmail.com Fri Jul 14 23:18:22 2006 From: todd.kennedy at gmail.com (Todd Kennedy) Date: Fri, 14 Jul 2006 17:18:22 -0400 Subject: [spambayes-dev] [Spambayes] ZeroDivisionError with hammie.score() In-Reply-To: <2a052b990607141340m2282fe05w322547a022aefa3b@mail.gmail.com> References: <226d83de0607131923g947a55ch466c24f2e7c830a7@mail.gmail.com> <2a052b990607141340m2282fe05w322547a022aefa3b@mail.gmail.com> Message-ID: <226d83de0607141418h4eff8ed5m73e5fe498eaea0a0@mail.gmail.com> Kenny, Thanks for the reply. With the definitions of spamcount and hamcount it makes sense that they might be zero, since there is minimal training data in the system, and the word being scored does not exist in the database. This might be some sort of small bug with running the filter on a small amount of data, as I can reliably replicate a divide by zero error. If spamcount and hamcount are both zero, shouldn't the system return some sort of 0% probability for spam or ham (showing it's uncertainty for the phrase being scored)? Here is a script which trains one phrase as ham and one phrase as spam, then tries to filter a phrase containing a number of words which don't exist in the system. (I didn't include my pgsql connection details, but it's running on the pgsql connector if that matters) #!/usr/bin/python from spambayes import hammie h = hammie.open(dbinfo,dbtype,'w') h.train_ham('here are some pictures from our trip to africa, i hope you enjoy them') h.store() h.train_spam('refinance your mortgage with cilias!') h.store() h.filter('do you want some viagra') It seems to just be not catching the exception (you should be able to try to score text with little to no information present in the database about what is spam and what is ham -- it should just be unsure of it). If change line 320 of classify.py (i'm using the latest 1.1a1 release now) to a very simple try/except clause: try: prob = spamratio / (hamratio + spamratio) except: prob = 0 You can't replicate the error with the above script. Is this a patch that should be submitted? Is there a method for submitting this? Thanks! Todd On 7/14/06, Kenny Pitt wrote: > [I'm moving this over to spambayes-dev because it deals more with the code] > > On 7/13/06, Todd Kennedy wrote: > > I'm trying to integrate the spambayes package into my blogging > > software as a comment spam filter. I've read through a bunch of the > > source, looked at the scripts provided and stuff and have a > > rudimentary understanding of how the software works. (i think). but > > i'm getting a ZeroDivisionError when I try to run the score method of > > hammie. > > > > [...] > > > > The exception occurs at: > > File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/classifier.py", > > line 320, in probability > > prob = spamratio / (hamratio + spamratio) > > ZeroDivisionError: float division > > > > I put in some simple print statements to print out nham, nspam, > > spamcount and hamcount. this is their output: > > 22:14:52 (~) > > todd at mothra> ./test_sp.py > > spamcount 6 > > hamcount 6 > > nham 6 > > nspam 6 > > spamcount 6 > > hamcount 6 > > spamcount 6 > > hamcount 6 > > spamcount 6 > > hamcount 6 > > spamcount 0 > > hamcount 0 > > nham 6 > > nspam 6 > > > > why would spamcount and hamcount go to 0? > > From the WordInfo class comments in classifier.py: > > # ... spamcount is the > # number of trained spam msgs in which the word appears, and hamcount > # the number of trained ham msgs. > > So spamcount would be 0 if the current word has never been seen in a > trained spam message, and similarly for hamcount. A word will only > appear in the training database if it has appeared in at least one > message so you should never have a word with both counts 0. The > _worddistanceget() function in the Classifier class deals with this by > assigning a default probability to any word that does not appear in > the training data, so the probability calculation should only run on > trained words. > > It's hard to say how the code might have ended up in the probability() > function with a word that wasn't in the training data. It might help > to print which word produced each of the spamcount/hamcount pairs and > compare those against the training data to see if there are any that > don't appear in the training. > > It would also be interesting to know if you have ever tried to remove > a message from the training data (i.e. untrain the message). When a > message is removed, each word is checked to see if both counts have > gone to 0 (see the _remove_msg function) and the word should be > removed from the training data in that case. I see that you are using > the Postgres storage engine. I'm guessing a little here, but I don't > think Postgres has received as much testing as some of the other > storage formats so it might be possible that the record didn't > actually get deleted from the training database once both counts went > to 0. > > -- > Kenny Pitt > From tim.peters at gmail.com Sat Jul 15 00:15:48 2006 From: tim.peters at gmail.com (Tim Peters) Date: Fri, 14 Jul 2006 18:15:48 -0400 Subject: [spambayes-dev] [Spambayes] ZeroDivisionError with hammie.score() In-Reply-To: <226d83de0607141418h4eff8ed5m73e5fe498eaea0a0@mail.gmail.com> References: <226d83de0607131923g947a55ch466c24f2e7c830a7@mail.gmail.com> <2a052b990607141340m2282fe05w322547a022aefa3b@mail.gmail.com> <226d83de0607141418h4eff8ed5m73e5fe498eaea0a0@mail.gmail.com> Message-ID: <1f7befae0607141515p5b113aa6wa122a28336a895f9@mail.gmail.com> [Todd Kennedy] > With the definitions of spamcount and hamcount it makes sense that > they might be zero, since there is minimal training data in the > system, and the word being scored does not exist in the database. > > This might be some sort of small bug with running the filter on a > small amount of data, as I can reliably replicate a divide by zero > error. If spamcount and hamcount are both zero, shouldn't the system > return some sort of 0% probability for spam or ham (showing it's > uncertainty for the phrase being scored)? Yes, and it does. That's what Kenny tried to tell you :-) This is Classifier._worddistanceget(): def _worddistanceget(self, word): record = self._wordinfoget(word) if record is None: prob = options["Classifier", "unknown_word_prob"] else: prob = self.probability(record) distance = abs(prob - 0.5) return distance, prob, word, record If there is no record for the word, then this returns the value of the "unknown_word_prob" option. It only tries to _compute_ the probability if there _is_ a record for the word, and it should never be the case that a record exists for a word with hamcount and spamcount both 0. It would be helpful to dump print statements into that function (or run under Python's debugger) to see exactly which word it is and what's in that record -- or possibly you'd discover that _worddistanceget() isn't being called at all. You didn't include a complete traceback in your original message, so it's impossible from here to guess who called probability() to begin with. A complete traceback would help. > ... > If change line 320 of classify.py (i'm using the latest 1.1a1 release > now) to a very simple try/except clause: > try: > prob = spamratio / (hamratio + spamratio) > except: > prob = 0 > > You can't replicate the error with the above script. > > Is this a patch that should be submitted? No, because that slows down a speed-critical function to paper over a problem that should never occur. The bug isn't that this is dividing by 0, the bug is that probability() is being _called_ when both counts are 0. Something, somewhere, on the path _toward_ calling probability() is in error. From todd.kennedy at gmail.com Sat Jul 15 23:56:19 2006 From: todd.kennedy at gmail.com (Todd Kennedy) Date: Sat, 15 Jul 2006 17:56:19 -0400 Subject: [spambayes-dev] [Spambayes] ZeroDivisionError with hammie.score() In-Reply-To: <1f7befae0607141515p5b113aa6wa122a28336a895f9@mail.gmail.com> References: <226d83de0607131923g947a55ch466c24f2e7c830a7@mail.gmail.com> <2a052b990607141340m2282fe05w322547a022aefa3b@mail.gmail.com> <226d83de0607141418h4eff8ed5m73e5fe498eaea0a0@mail.gmail.com> <1f7befae0607141515p5b113aa6wa122a28336a895f9@mail.gmail.com> Message-ID: <226d83de0607151456l3a46a7e2xf4304e84b459f397@mail.gmail.com> Tim, Thanks for the reply. I understand what you're talking about with papering over the problem. I've included the full traceback that you get when you run the script I provided. Hopefully this will provide some information. Any ideas on how to resolve this would be great -- I'm moderately new to Python. Also, I upgraded to 1.1a2 and it's still occuring... 17:53:27 (~/src/spambayes) todd at mothra> ./test.py Traceback (most recent call last): File "./test.py", line 9, in ? h.filter('do you want some viagra') File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/hammie.py", line 155, in filter debug, train) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/hammie.py", line 109, in score_and_filter prob, clues = self._scoremsg(msg, True) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/hammie.py", line 38, in _scoremsg return self.bayes.spamprob(tokenize(msg), evidence) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/classifier.py", line 196, in chi2_spamprob clues = self._getclues(wordstream) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/classifier.py", line 499, in _getclues tup = self._worddistanceget(word) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/classifier.py", line 514, in _worddistanceget prob = self.probability(record) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/spambayes/classifier.py", line 320, in probability prob = spamratio / (hamratio + spamratio) ZeroDivisionError: float division On 7/14/06, Tim Peters wrote: > [Todd Kennedy] > > With the definitions of spamcount and hamcount it makes sense that > > they might be zero, since there is minimal training data in the > > system, and the word being scored does not exist in the database. > > > > This might be some sort of small bug with running the filter on a > > small amount of data, as I can reliably replicate a divide by zero > > error. If spamcount and hamcount are both zero, shouldn't the system > > return some sort of 0% probability for spam or ham (showing it's > > uncertainty for the phrase being scored)? > > Yes, and it does. That's what Kenny tried to tell you :-) This is > Classifier._worddistanceget(): > > def _worddistanceget(self, word): > record = self._wordinfoget(word) > if record is None: > prob = options["Classifier", "unknown_word_prob"] > else: > prob = self.probability(record) > distance = abs(prob - 0.5) > return distance, prob, word, record > > If there is no record for the word, then this returns the value of the > "unknown_word_prob" option. It only tries to _compute_ the > probability if there _is_ a record for the word, and it should never > be the case that a record exists for a word with hamcount and > spamcount both 0. > > It would be helpful to dump print statements into that function (or > run under Python's debugger) to see exactly which word it is and > what's in that record -- or possibly you'd discover that > _worddistanceget() isn't being called at all. You didn't include a > complete traceback in your original message, so it's impossible from > here to guess who called probability() to begin with. A complete > traceback would help. > > > ... > > If change line 320 of classify.py (i'm using the latest 1.1a1 release > > now) to a very simple try/except clause: > > try: > > prob = spamratio / (hamratio + spamratio) > > except: > > prob = 0 > > > > You can't replicate the error with the above script. > > > > Is this a patch that should be submitted? > > No, because that slows down a speed-critical function to paper over a > problem that should never occur. The bug isn't that this is dividing > by 0, the bug is that probability() is being _called_ when both counts > are 0. Something, somewhere, on the path _toward_ calling > probability() is in error. > From tameyer at ihug.co.nz Sun Jul 16 06:39:08 2006 From: tameyer at ihug.co.nz (Tony Meyer) Date: Sun, 16 Jul 2006 16:39:08 +1200 Subject: [spambayes-dev] [Spambayes] ZeroDivisionError with hammie.score() In-Reply-To: <226d83de0607151456l3a46a7e2xf4304e84b459f397@mail.gmail.com> References: <226d83de0607131923g947a55ch466c24f2e7c830a7@mail.gmail.com> <2a052b990607141340m2282fe05w322547a022aefa3b@mail.gmail.com> <226d83de0607141418h4eff8ed5m73e5fe498eaea0a0@mail.gmail.com> <1f7befae0607141515p5b113aa6wa122a28336a895f9@mail.gmail.com> <226d83de0607151456l3a46a7e2xf4304e84b459f397@mail.gmail.com> Message-ID: > I've included the full traceback that you get when you run the script > I provided. Hopefully this will provide some information. Any ideas > on how to resolve this would be great -- I'm moderately new to Python. > Also, I upgraded to 1.1a2 and it's still occuring... [...] I believe the problem is in _wordinfoget, which should return None if the word is not in the database (and this is how _worddistanceget decides whether to use the 'unknown token' probability). PGClassifier's _wordinfoget method (actually the base SQLClassifier's), which, as Kenny said, isn't widely used, is: def _wordinfoget(self, word): if isinstance(word, unicode): word = word.encode("utf-8") row = self._get_row(word) if row: item = self.WordInfoClass() item.__setstate__((row["nspam"], row["nham"])) return item else: return self.WordInfoClass() I believe this should be: def _wordinfoget(self, word): if isinstance(word, unicode): word = word.encode("utf-8") row = self._get_row(word) if row: item = self.WordInfoClass() item.__setstate__((row["nspam"], row["nham"])) return item else: return None (This is more-or-less what the mySQL storage option does). Try that change (just changing the final return from "self.WordInfoClass()" to "None"), and see if it fixes the problem. If it does, please let us know so that we can make the change in the repository as well. =Tony.Meyer From todd.kennedy at gmail.com Sun Jul 16 09:47:12 2006 From: todd.kennedy at gmail.com (Todd Kennedy) Date: Sun, 16 Jul 2006 03:47:12 -0400 Subject: [spambayes-dev] [Spambayes] ZeroDivisionError with hammie.score() In-Reply-To: References: <226d83de0607131923g947a55ch466c24f2e7c830a7@mail.gmail.com> <2a052b990607141340m2282fe05w322547a022aefa3b@mail.gmail.com> <226d83de0607141418h4eff8ed5m73e5fe498eaea0a0@mail.gmail.com> <1f7befae0607141515p5b113aa6wa122a28336a895f9@mail.gmail.com> <226d83de0607151456l3a46a7e2xf4304e84b459f397@mail.gmail.com> Message-ID: <226d83de0607160047vfad7237o218509bc222414d1@mail.gmail.com> Tony, That seems to have solved the issue. By changing the _wordinfoget function for the SQLClassifier class to return None on the else case I'm no longer getting a traceback, but rather: X-Spambayes-Classification: ham; 0.02 do you want some viagra As output of the h.filter() function. Thanks much!! On 7/16/06, Tony Meyer wrote: > > I've included the full traceback that you get when you run the script > > I provided. Hopefully this will provide some information. Any ideas > > on how to resolve this would be great -- I'm moderately new to Python. > > Also, I upgraded to 1.1a2 and it's still occuring... > [...] > > I believe the problem is in _wordinfoget, which should return None if > the word is not in the database (and this is how _worddistanceget > decides whether to use the 'unknown token' probability). > > PGClassifier's _wordinfoget method (actually the base > SQLClassifier's), which, as Kenny said, isn't widely used, is: > > def _wordinfoget(self, word): > if isinstance(word, unicode): > word = word.encode("utf-8") > > row = self._get_row(word) > if row: > item = self.WordInfoClass() > item.__setstate__((row["nspam"], row["nham"])) > return item > else: > return self.WordInfoClass() > > I believe this should be: > > def _wordinfoget(self, word): > if isinstance(word, unicode): > word = word.encode("utf-8") > > row = self._get_row(word) > if row: > item = self.WordInfoClass() > item.__setstate__((row["nspam"], row["nham"])) > return item > else: > return None > > (This is more-or-less what the mySQL storage option does). > > Try that change (just changing the final return from > "self.WordInfoClass()" to "None"), and see if it fixes the problem. > If it does, please let us know so that we can make the change in the > repository as well. > > =Tony.Meyer > > > From David.Joy at sungard.com Fri Jul 21 17:06:55 2006 From: David.Joy at sungard.com (David.Joy at sungard.com) Date: Fri, 21 Jul 2006 17:06:55 +0200 Subject: [spambayes-dev] Two mail boxes, one user Message-ID: Hi, And thanks for a great performer. My question is what will happen if I want to filter spam on two mailboxes that I have access rights to, in Outlook. (2003 11.8002 SP2 XP) If the other mailbox is a shared one, with other users also wishing to benefit from the spam filtering (=we all agree what is spam), who should run Spambayes, and are there authorisation issues? Regards - David CONFIDENTIALITY: This e-mail (including any attachments) may contain confidential, proprietary and privileged information, and unauthorized disclosure or use is prohibited. If you received this e-mail in error, please notify the sender and delete this e-mail from your system. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/spambayes-dev/attachments/20060721/610bebd0/attachment.html From rjs at visitorville.com Fri Jul 21 17:07:42 2006 From: rjs at visitorville.com (Robert Savage) Date: Fri, 21 Jul 2006 11:07:42 -0400 Subject: [spambayes-dev] SpamBayes programming consultant needed Message-ID: <6.0.1.1.2.20060721110335.043bdc90@localhost> We are looking for a consultant to write an interface between SpamBayes and an e-mail client written in C. This interface should do filtering, which will consist of adding the X-Spambayes-Classification tag to the header of the mail body, and should do training. Ideally, you would make a COM with SpamBayes, having those interface functions for filtering (actually scanning) and training. Robert Savage VisitorVille.com mayor at visitorville.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/spambayes-dev/attachments/20060721/f4ee90bb/attachment.html From tameyer at ihug.co.nz Sat Jul 22 10:28:16 2006 From: tameyer at ihug.co.nz (Tony Meyer) Date: Sat, 22 Jul 2006 20:28:16 +1200 Subject: [spambayes-dev] SpamBayes programming consultant needed In-Reply-To: <6.0.1.1.2.20060721110335.043bdc90@localhost> References: <6.0.1.1.2.20060721110335.043bdc90@localhost> Message-ID: <75EF27B4-CA6A-4B92-ABEF-51B6E1DB0294@ihug.co.nz> > We are looking for a consultant to write an interface between > SpamBayes and an e-mail client written in C. This interface should > do filtering, which will consist of adding the X-Spambayes- > Classification tag to the header of the mail body, and should do > training. Ideally, you would make a COM with SpamBayes, having > those interface functions for filtering (actually scanning) and > training. I hesitate in saying this, because I don't want to take work away from anyone, but there's not much to be done here, unless the COM server is a requirement. You can use either sb_bnfilter (the distribution includes a C version as well as a pure-Python one) with sb_bnserver.py or sb_xmlrpcserver.py to do this (using any C xmlrpc library, or manually crafting the xml and handling the socket connection). If Python won't be available, then a simple py2exe script can create binaries of these. If a COM server is a requirement, then there is work to be done, although it's basically all work on creating the COM server (under a dozen lines of Python - plus the existing SpamBayes package - can do all the rest). =Tony.Meyer From lapid at netvision.net.il Sun Jul 23 22:10:23 2006 From: lapid at netvision.net.il (Peleg Lapid) Date: Sun, 23 Jul 2006 23:10:23 +0300 Subject: [spambayes-dev] Spam Bays and WinXP 64 bit Message-ID: Hello I was using SpamBays on for several years. Lately I switched to Intel 64 bit computer (EM64T) with WIN XP pro 64 bit. After installing the Spam Bays, the outlook (last edition with all fixes) crashes and disables the Spam Bays. Is there a way to correct the situation. Many thanks Peleg Lapid -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/spambayes-dev/attachments/20060723/93664d21/attachment.html From erik.lovaas at biosea.no Sat Jul 29 19:37:22 2006 From: erik.lovaas at biosea.no (=?iso-8859-1?Q?Erik_L=F8vaas?=) Date: Sat, 29 Jul 2006 19:37:22 +0200 Subject: [spambayes-dev] Messages don't move (even if I change the folder) Message-ID: <000301c6b335$a66d7e30$079bf281@farmas.uit.no> Messages don't move (even if I change the outlook folder). I have tried to uninstall and reinstall SpamBayes, it don't help. I use Outlook 2003, SP 2. I have a feeling that SpamBayes has been outsmarted by some e-mails, that in some way deactivate the program. Erik Bio-Sea Management AS P.O.Box 6420 - 9294 Troms? - Norway Visiting address: Troms? Science Park, 9294 Troms? - Norway Mobile: +47-9055 6871, Fax: +47-9600 5833 e-mail: erik.lovaas at biosea.no, skype: eriklovaas Organization no: 985 318 271 - Bank account: 1644.13.87575 -------------- next part -------------- A non-text attachment was scrubbed... Name: winmail.dat Type: application/ms-tnef Size: 11090 bytes Desc: not available Url : http://mail.python.org/pipermail/spambayes-dev/attachments/20060729/04c80a90/attachment.bin From robert.mezzone at pjsolomon.com Sat Jul 29 23:41:12 2006 From: robert.mezzone at pjsolomon.com (Robert Mezzone) Date: Sat, 29 Jul 2006 17:41:12 -0400 Subject: [spambayes-dev] Messages don't move (even if I change the folder) Message-ID: Did you check disabled items. In Outlook, Help, About Outlook, Disabled Items. HTH. -----Original Message----- From: spambayes-dev-bounces at python.org To: spambayes-dev at python.org Sent: Sat Jul 29 13:37:22 2006 Subject: [spambayes-dev] Messages don't move (even if I change the folder) Messages don't move (even if I change the outlook folder). I have tried to uninstall and reinstall SpamBayes, it don?t help. I use Outlook 2003, SP 2. I have a feeling that SpamBayes has been outsmarted by some e-mails, that in some way deactivate the program. Erik Bio-Sea Management AS P.O.Box 6420 - 9294 Troms? ? Norway Visiting address: Troms? Science Park, 9294 Troms? - Norway Mobile: +47-9055 6871, Fax: +47-9600 5833 e-mail: erik.lovaas at biosea.no, skype: eriklovaas Organization no: 985 318 271 - Bank account: 1644.13.87575 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/spambayes-dev/attachments/20060729/44eb4cd6/attachment.htm