All Projects → carlostrub → Sisyphus

carlostrub / Sisyphus

Licence: bsd-3-clause
Intelligent Junk Mail Handler

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Sisyphus

Pydnsbl
Async dnsbl spam lists checker based on asyncio/aiodns.
Stars: ✭ 18 (-76.32%)
Mutual labels:  mail, spam
unlister
📬 Script for Mail on macOS that automatically unsubscribes from promotional emails and newsletters
Stars: ✭ 33 (-56.58%)
Mutual labels:  spam, mail
Jamspymer
SMS, Call, Mail, Telegram бомбер с открытым исходным кодом
Stars: ✭ 95 (+25%)
Mutual labels:  mail, spam
Postfwd Anti Geoip Spam Plugin
Postfwd plugin for blocking international spam botnets based on geographical location of IP addresses used to login to postfix via sasl.
Stars: ✭ 40 (-47.37%)
Mutual labels:  mail, spam
Tables To Go
convert your database tables to structs easily
Stars: ✭ 62 (-18.42%)
Mutual labels:  golang-application
Applescripts
My collection of AppleScripts created/acquired over the years. This repo is designed to provide useful AppleScripts for others and as a general resource for AppleScript education.
Stars: ✭ 56 (-26.32%)
Mutual labels:  mail
Imapcopy
Recursively copy all e-mail messages and folders from one IMAP account to another.
Stars: ✭ 52 (-31.58%)
Mutual labels:  mail
Gogeom
This is a Geometrical library for Go Language. Which includes multiple Geometrical calculations like Circle, Lines etc in different forms
Stars: ✭ 47 (-38.16%)
Mutual labels:  golang-application
Mailchain
Using Mailchain, blockchain users can now send and receive rich-media HTML messages with attachments via a blockchain address.
Stars: ✭ 74 (-2.63%)
Mutual labels:  mail
Glab
An open-source GitLab command line tool bringing GitLab's cool features to your command line
Stars: ✭ 1,126 (+1381.58%)
Mutual labels:  golang-application
Mail4delphi
Mail4Delphi uses the Indy component to send the email.
Stars: ✭ 60 (-21.05%)
Mutual labels:  mail
Mailchimp Boilerplate
MailChimp repeatable blocks boilerplate
Stars: ✭ 56 (-26.32%)
Mutual labels:  mail
Pkgmirror
Packages Mirroring
Stars: ✭ 62 (-18.42%)
Mutual labels:  golang-application
Mailer
A lightweight PHP SMTP mail sender
Stars: ✭ 53 (-30.26%)
Mutual labels:  mail
Gojis
An ECMAScript 2018 (ES9) implementation in Go
Stars: ✭ 66 (-13.16%)
Mutual labels:  golang-application
Cells
Future-proof content collaboration platform
Stars: ✭ 1,059 (+1293.42%)
Mutual labels:  golang-application
Webwhatsappbot
Core to automatize whatsapp - working 11/2018
Stars: ✭ 59 (-22.37%)
Mutual labels:  spam
Likelo
Twitter auto like bot, Under Development👷, Pre Alpha
Stars: ✭ 64 (-15.79%)
Mutual labels:  golang-application
Rdpgw
Remote Desktop Gateway in Go for deploying on Linux/BSD/Kubernetes
Stars: ✭ 59 (-22.37%)
Mutual labels:  golang-application
Hedwig
Send email to any SMTP server like a boss, in Swift and cross-platform
Stars: ✭ 1,096 (+1342.11%)
Mutual labels:  mail

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
  • requires minimal resources, e.g. learning over 50000 mails and keeping track of roughly 90000 words requires only 10MB of storage

Build Status Go Report Card GoDoc Documentation Codebeat Coverage Quality Gate Status

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. See the following blog post on a rather non-technical explanation.

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 sisyphus.db which is located in each Maildir directory.

Install

Sisyphus can be installed by downloading the released binary package.

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

First, set the environment variable necessary for operation:

$ setenv SISYPHUS_DIRS PATHTOMAILDIR

or

$ 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.

License

Sisyphus is licensed under the 3-Clause BSD license. See the LICENSE file for detailed information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].