Mailbox Strainer 0.91
Mailbox Strainer is a Superkaramba widget that examines an arbitrary number of IMAP mailboxes.
You may have serveral instances running such that each one checks its own collection of mailboxes. SpamAssassin may be invoked to detect spam, or message headers modified by external spam checkers can be evaluated. It is also possible to make SpamAssassin learn from specified IMAP or local folders.
Configuration can be done through a graphical interface or manually via a configuration file (an annotated configuration file is supplied).
Mailbox Strainer is written in Perl. Depending on the features you want to use, a number of Perl modules must be installed. In particular, PerlQt will be needed for the configuration dialog. All modules can be found at http://www.cpan.org , consider using the CPAN shell (perl -MCPAN -e shell) for this will automatically resolve dependencies. To find out which modules are missing on your system, invoke module-test.pl . (Hopefully I didn't forget any of them, it has become quite a number.)
The local mail capabilities are those of the Email::Folder::* modules, so they should be able to handle mbox and maildir. Currently, using the spam detection with local mbox folders is _strongly_ discouraged! It is likely to destroy your Emails, see http://www.nntp.perl.org/group/perl.pep/68 for the reason. (A possible workaround is presented in http://www.nntp.perl.org/group/perl.pep/72.) So spam checking is currently disabled for local mailboxes. You can enable it by changing lines 975, 998 and 1081 of perl/mailbox-strainer.pl. Remove "0 &&" from each of those lines.
A few words about password storage: The configuration dialog stores encrypted passwords (of length at least 8) in the configuration file. This is meant as a protection against accidentally displaying the configuration file, but nothing else. Consider this as a parody on proper encryption, even the 'secret' key can be found in the perl scripts.
What's New in This Release:
· The Perl DCOP module has changed recently. I decided to drop the module and use a system call instead.