Reengineering JM into a Mail bundle plugin: now the installer installs JunkMatcher.mailbundle in your ~/Library/Mail/Bundles folder.
Your ~/Library/Scripts/junkMatcher folder now only has junkMatcher.scpt (and possibly a backed up Pattern Package .jpp file) - no fluff to slow down/clutter your Scripts menu now. If you want you can even move these to another place as long as your JunkMatcher rule in Mail can find junkMatcher.scpt.
The back-end now starts/shuts down/acts on messages by instructions from the mail bundle plugin (implemented in Cocoa/Obj-C). In addition to improved reliability, this should also speed up the matching process too.
For users who set up cron jobs to run checkSites.py script: Make sure you update the path to the script. Look here: Contents/Resources/junkMatcher under JunkMatcher.mailbundle in your ~/Library/Mail/Bundles.
Spammers like to hide stuff in vacuous tags (please read Case 9 of Pathological Study of Junk Mails if you don't know what "vacuous tags" are): e.g., randomly generated URLs inside , which doesn't show anything in Mail, and these sites are either non-existent, or they have nothing to do with the shenanigans. To defeat this, vacuous tags are now removed from HTML-based emails before matching.
Corollary I of 1: added a new property "HTML has at least n vacuous tags" (n adjustable). Corollary II of 1: the "vacuous tags" pattern in the Body section is no longer necessary and is now removed.
JM now recognizes HTML marquee tag (pattern added to match it).
Bad site collection: now recognizes more MSN/Yahoo redirect tricks.
Back-end simplification due to the new bundle integration with Mail; source code package also streamlined.
Bug fix (JMC): When reporting certain junk mails part of the raw source "overflows" outside of the text area window in the browser.
Bug fix (JMC): When importing/exporting patterns, with the import/export panel in the front, pulling down any menu and then hitting Cancel will render most of the menu items disabled even when the panel is dismissed.