[Spambayes] Win 7, Outlook 2007 issues

Ocean Ocean at cobaltnight.com
Thu Mar 18 01:17:16 CET 2010

> -----Original Message-----
> From: skip at pobox.com [mailto:skip at pobox.com]
> Sent: Wednesday, March 17, 2010 7:53 PM
> To: Ocean
> Cc: spambayes at python.org
> Subject: Re: [Spambayes] Win 7, Outlook 2007 issues
>     Ocean> First of all, if a user is downloading a large number of emails
>     Ocean> (when I've seen this occur, the user was downloading over 100
>     Ocean> messages), SpamBayes will cause Outlook to crash.  Rinse and
>     Ocean> repeat as often as you want, but Outlook will not download the
>     Ocean> messages without crashing unless SpamBayes is disabled during
>     Ocean> message download.  Once that's done, you can enable it.  If a
>     Ocean> user only has a modest number of messages coming in, then
>     Ocean> does not crash.
> Do you have any details which might help others (mostly Mark) debug the
> problem?
>     Ocean> The way messages are showing up under Win 7 x64 is not a good
>     Ocean> thing.  Perhaps it's related to why Outlook crashes if there
>     Ocean> a large number of messages downloaded, but these are both
>     Ocean> that need to be resolved.
> Can you provide more debugging details?
> --
> Skip Montanaro - skip at pobox.com - http://www.smontanaro.net/

	We established earlier that under Win 7 x64, the Trace Collector
doesn't work.  In addition, I tried modifying the source in order to get
SpamBayes to log to file instead.  While it was confirmed that my changes
should have worked, no one ever looked into why they didn't, and what needed
to be done in order to fix that.

	If you (or someone else) can help me get logging to file enabled,
I'd be able to provide more useful information.

To reiterate:

In "addin.py" located in the Outlook20000 folder, look for this section:


    if hasattr(sys, "frozen"):
        temp_dir = win32api.GetTempPath()
        for i in range(3,0,-1):
            try: os.unlink(os.path.join(temp_dir, "spambayes%d.log" %
            except os.error: pass
                    os.path.join(temp_dir, "spambayes%d.log" % i),
                    os.path.join(temp_dir, "spambayes%d.log" % (i+1))
            except os.error: pass
        # Open this log, as unbuffered so crashes still get written.
        sys.stdout = open(os.path.join(temp_dir,"spambayes1.log"), "wt", 0)
        sys.stderr = sys.stdout
        import win32traceutil


...and replace the last line, with the contents of the IF statement above
it.  I was nervous about removing the IF statement completely, so I simply
made the ELSE statement match it.

	However, despite this change, no log file is ever created in the
system's temp directory.

More information about the SpamBayes mailing list