As we all know too well, many mails we receive are undesired for various reasons. Sometimes, we just do not want to be part of a scam, sometimes we really prefer no to have this latest joke mail sent by our beloved friends -- even though we are happy to exchange serious messages with them.
Sisyphus is a junk mail handler of the latest generation. It has the following features:
Sisyphus analyzes each mail in the inbox and the junk folder and uses its
subject and text to improve the learning algorithm. Whenever a new mail arrives
Maildir/new directory, Sisyphus classifies this mail based on its
content. Junk mails are then moved automatically to the
directory, while good mails are left untouched. See the following blog
post on a rather non-technical
Technically, Sisyphus applies a classic Bayesian Update algorithm to classify mails. However, in contrast to many traditional junk mail filters, classification is based on all mails ever received. This includes mails that are classified by the user as junk by moving them manually into the junk folder, or mails that have been correctly classified by Sisyphus previously. This is only possible with limited resources by applying the HyperLogLog algorithm to store the learned mails.
The learned information is stored in a local database called
which is located in each
Sisyphus can be installed by downloading the released binary package.
To build from source, you can
$GOPATH/src/github.com/carlostrub/sisyphusand change directory into it
This will leave you with
./sisyphus in the
sisyphus directory, which you
can put in your
$PATH. (You can also take a look at
make install to install
First, set the environment variable necessary for operation:
$ setenv SISYPHUS_DIRS PATHTOMAILDIR
$ export SISYPHUS_DIRS=PATHTOMAILDIR
or for Windows
$ set SISYPHUS_DIRS=PATHTOMAILDIR
For all other configuration options, please consult the help. It can be started by running
$ sisyphus help
To start sisyphus, do
$ sisyphus run
To display various statistics, do
$ sisyphus stats
(caveat: run at least one learning cycle)
See the help for more details.
Sisyphus is licensed under the 3-Clause BSD license. See the LICENSE file for detailed information.