Fight Spam with Mail.app + JunkMatcher

All New JunkMatcher!
Icon courtesy of Steve Caplin

JunkMatcher is a cocktail-styled spam filter for Mail.app on Mac OS X (10.3.x or later). It filters spam by conducting a wealth of tests over emails. Two types of tests are available: property tests can detect general characteristics of spam using techniques such as naive Bayesian filtering (thanks to SpamBayes) and blacklist lookup (checking if a message was sent from a spamming IP address), and pattern tests can spot keywords such as "v1ägra" or "\/Iagr á" by using patterns written in regular expressions, a very powerful language designed just for that - to describe patterns.

JunkMatcher integrates tightly with Mail.app and OS X. You don't need to keep a second app running in order to use it - the filter will automagically spring into action via a rule within Mail.app! You can even use it with Mail.app's built-in filter if you wish, in which case it will become a good teacher to the built-in filter. JunkMatcher also knows your Address Book, and you can train emails as spam/ham (good emails) directly from within Mail.app, etc.

JunkMatcher is extremely configurable. The GUI lets you tweak a gazillion of settings, analyze mis-classified emails, and even design your own pattern tests to catch more spam. You can write patterns to match many "views" of cleanly distilled emails such as the headers, the subject, the body, and even the text rendering for HTML emails (thanks to ELinks). You can also check on what JunkMatcher has done in the past and correct its mistakes if necessary, all from a very friendly GUI.

JunkMatcher evolves, too. In addition to the built-in Bayesian classifier that learns from mistakes, you can also download new pattern updates directly within the JunkMatcher GUI. Best of all? JunkMatcher is completely free (donation is welcome)! In fact, it is an open-source app so you also get the source code!

Screenshots

The following screenshots are taken from JunkMatcher version 1.6.0, released on August 22, 2005.

thumbnail
You can load emails into JunkMatcher GUI (for analysis) and train emails as ham/spam via a contextual menu item in Mail.app.
thumbnail
The Analyzer window in JunkMatcher: you can build/test your patterns, and tweak various settings of your tests.
thumbnail
The Log window in JunkMatcher: you can check what JunkMatcher has done to your emails and make corrections.
thumbnail
Test Inspector window over the property "SpamBayes Bayesian classifier".
thumbnail
Test Inspector window over the property "Open relay": choose up to 3 blacklists for checking the IPs in the email headers.
thumbnail
Test Inspector window over a pattern: you can target the same pattern to different "message views".
thumbnail
Manage the bad web sites automatically collected from spam.
thumbnail
Manage your whitelist: you can use regular expressions to whitelist a large group of senders.
thumbnail
Download pattern updates online and selectively import them into your pattern pool.

Download

DISCLAIMER: this program is provided to you in the hope that it would be useful, but I do not guarantee in ANY way that it would function correctly or meet your needs. Use it at your risk.
Application Package
Application Package
Source Code Package
Source Code

The application package (bzipped disk image file) and the source code package (bzipped tar file) are both available for download. The current version is 1.6.1, released on August 24, 2005 (see the News section for what's new).

JunkMatcher is distributed under the GNU General Public License, and a copy of the license should have been included in the packages. If you want to include JunkMatcher in your publication/software distribution, please send me a permission request first.

Discussion Forums and Mailing Lists

  • Discussion forums (hosted on Sourceforge.net, must be a registered member of Sourceforge.net to post):

    • Help: Post your questions and help your fellow users here.
    • Open Discussions: Anything related to spam and anti-spam techniques/tools.
  • Mailing lists (hosted on Sourceforge.net):

    • JunkMatcher-beta: This list is for beta testers only. You are welcome to submit request for joining the list if you'd like to test beta versions of JunkMatcher - other than donation, this is currently the only way to help the project!

Site Map

  • Home: This page.
  • News: The latest news about the development of JunkMatcher.
  • Howto: JunkMatcher's mini manual.
  • Pathology: Pathological Study of Junk Mails.
  • Links: Useful spam and Mail.app related links.
  • Donation: If JunkMatcher proves to be useful for you, welcome to drop a few bucks here.
  • @SF.net: Project page at Sourceforge.net.

Acknowledgments

I am grateful for the help of many people in bringing this project to life.

App and Document Icon Design

Steve Caplin

Beta Testing

(Alphabetical order) Andreas Amann, Barry Gluck, Al Heynneman, Barry Margolin, Bill Muench, Alex Ostleitner, Glenn Rankin, Ben Rosenthal, and the other members on the JunkMatcher-beta mailing list.

With special thanks to the following Open Source projects:

  • Python: A powerful and elegant language.
  • PyObjC: A bridge between Objective-C and Python.
  • SpamBayes: A powerful Bayesian spam filter.
  • CJKCodecs: A unified unicode codec set for Chinese, Japanese and Korean encodings.
  • PyDNS: A DNS module for Python.
  • ELinks: A powerful text-based browser.
  • NDAlias: An easy-to-use Cocoa wrapper for alias management by Nathan Day.

The following people have also contributed to the development one way or another:

(Alphabetical order) Andreas Amann, David Blache, Stéphane Corthésy, "The Crew", Philip Mötteli, Daniel Parnell, Stefan Schüßler.