improve README

master
Carlo Strub 7 years ago
parent 88fefe9249
commit 44c158d2ef

@ -1,3 +1,20 @@
# Sisyphus: Intelligent Junk Mail Handler
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:
* requires zero configuration, neither on the server nor on the client
* works with any MTA and any client
* learns about your preferences based on all messages in your inbox and your
junk folder
* can handle multiple mail accounts with independant junk mail preferences
* is fully daemonized, runs smoothly in the background
* requires minimal resources by using the HyperLogLog algorithm to store learned mails
[![Build Status](https://travis-ci.org/carlostrub/sisyphus.svg?branch=master)](https://travis-ci.org/carlostrub/sisyphus)
[![Go Report Card](https://goreportcard.com/badge/github.com/carlostrub/sisyphus)](https://goreportcard.com/report/github.com/carlostrub/sisyphus)
[![GoDoc](https://godoc.org/github.com/carlostrub/sisyphus?status.svg)](https://godoc.org/github.com/carlostrub/sisyphus)
@ -5,7 +22,57 @@
[![Codebeat](https://codebeat.co/badges/64615809-e3c4-4267-a049-eaec20ad63b5)](https://codebeat.co/projects/github-com-carlostrub-sisyphus-master)
[![Coverage](https://gocover.io/_badge/github.com/carlostrub/sisyphus?0 "Coverage")](http://gocover.io/github.com/carlostrub/sisyphus)
# sisyphus
Intelligent, easy to configure Spam cleaner
## How it works
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
in the `Maildir/new` directory, Sisyphus classifies this mail based on its
content. Junk mails are then moved automatically to the `Maildir/.Junk`
directory, while good mails are left untouched.
Technically, Sisyphus applies a classic [Bayesian Update
algorithm](https://en.wikipedia.org/wiki/Bayesian_inference) 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](https://en.wikipedia.org/wiki/HyperLogLog) to store the learned
mails.
The learned information is stored in a local database called `sisyphus.db`
which is located in each `Maildir` directory.
## Install
Sisyphus can be installed by downloading the released [binary
package.](https://github.com/carlostrub/sisyphus/releases)
To build from source, you can
1. Clone this repository into `$GOPATH/src/github.com/carlostrub/sisyphus` and
change directory into it
2. Run `make build`
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
for you.)
## Usage
Sisyphus help can be started by running
```
# sisyphus help
```
To start sisyphus, do
```
# sisyphus --maildir PATHTOMAILDIR run
```
To run it in the background, do
```
# sisyphus --maildir PATHTOMAILDIR start
```
See the help for more details.
This software is work in progress. Wait for more to come.
## License
Sisyphus is licensed under the 3-Clause BSD license. See the LICENSE file for
detailed information.

Loading…
Cancel
Save