The mapSoN Spam Filter 3.x

Peter Simons


Table of Contents
1. Introduction
2. Obtaning mapSoN
3. Updating from Version 2.x
4. System Requirements
5. License

1. Introduction

mapSoN is a spam filter that uses a pretty unique approach to keep unsolicited commercial e-mail out of your mailbox. Rather than using a set of configured "bad words", a list of "know spammers", or complicated scoring mechanisms to determine what is spam and what is not, it relies on "known senders" -- or rather "unknown senders".

Every time you receive an e-mail, mapSoN will look-up the sender's e-mail address in a small database file and check whether that address is in there. If it is, the mail is delivered to your mailbox, but if it is not, the e-mail will be stored in a spool directory in your home, using a cryptographic cookie as the filename. Then mapSoN will send a so called or challenge (or: request for confirmation) to the sender's address, asking him to please confirm his addresses validity by replying and sending the cryptograpic cookie back. When mapSoN receives a mail with such a cookie in it, it will move the corresponding mail from the spool directory to your mailbox and add the sender's address in the mail to the database.

This approach is based on the fact that spammers usually fake the sender address of the spam mail. (In fact, they have to, because sending unsolicited advertisement via e-mail is illegal in most countries.) But because their sender address is invalid, they will never see the challenge, they will never reply, and their spam will sit in that spool file until hell freezes over or an apropriate cron job deletes it. Using this heuristic, mapSoN catches way above 95% of all spam mail I receive.

In order to avoid annoying more "real" people, who are trying to contact you, than necessary, you can import the addresses from your mail archive into the mapSoN database. Furthermore, you can set mapSoN up in a way that will let any mail pass automatically, that is a reply to a mail or a news posting of yours: If you sent someone an e-mail and he replies back, mapSoN won't bother him. It would be pretty inpolite, if it did.


2. Obtaning mapSoN

The most current version of the software can be downloaded from its project page at SourceForge.Net -- whom I wish to thank at this point for kindly hosting this project and for providing a generally excellent service to the software-development community.

Apart from downloading the software, you can of course read the User's Manual online.


3. Updating from Version 2.x

There are two minor changes in the mapSoN config file, which make it necessary to update your installation before you can use the version 3 or later binary. Make the following changes in $HOME/.mapson/config (or wherever the file is on your system):

  1. The cumbersome ReqConfirmTemplate option in the configuration file has been renamed to ChallengeTemplate. You should edit your configuration files accordingly, because mapSoN will abort with an error when finding the old keyword.

    Along with this change, the template file has been renamed from reqmail.template to challenge-template. Since your existing configuration files points to the old name, you don't need to change that if you don't want to.

  2. The StrictRFCParser option has been removed from mapSoN altogether, so you'll have to remove it from your configuration files as well.

In addition to those changes, the following options are new in the 3.x version: WhiteListDB, WhoamiDB, HashCashDB, HashCashExpiry, HashCashGrace, and ReqHashCashBits. You'll find them described in the User's Manual.

One new addition in version 3 is support for HashCash. mapSoN supports it insofar as that it let's mails with a valid HashCash always pass. Please refer to the HashCash website for further details.


4. System Requirements

mapSoN has been written for the UNIX operating system and will (hopefully) compile on any POSIX-compliant system. It has been tested on Linux, FreeBSD, Solaris, and MacOS X 10 and built out-of-the-box just fine. Since it has been written in ISO-C++, it will require a fairly recent compiler, though, because many older C++ compilers are not ISO C++ compliant. If you're using the excellent GNU C Compiler, you should not have any problem. If you do, please file a support request at mapSoN's project page at project pages at SourceForge.net.


5. License

mapSoN is copyrighted by Peter Simons . Permission is granted to use it under the terms of the GNU General Public License.