
This is a real-life example of Spoolinger usage. In fact this
is the historical reason why this project was created.

Using dovecot-antispam[1] you can retrain mails by simply
moving them in ou out of a specific IMAP folder. This is
very handy except the retraining processing is done at once,
which is not very flexible. According to the documentation:
  There are some problems with this approach including (1) it
  can take a long time during which the IMAP session is
  blocked (2) when many users retrain many messages at once
  server load may spike.

To avoid such drawback, two other dovecot-antispam backends
are available: pipe and spool2dir. I chose to use a spool
and create a daemon which would handle retraining spread
in a larger timeframe. Mails to be retrained are then not
taken into account instantly, in order to have a chance to
cancel it if the user made a mistake and happen to notice it
quickly. The concurrency is also very restricted, because
when people are working of sleeping, there is plenty of time
to process their mails, so there's no reason to load the
server too much.

In this directory you'll find:
  - a simple server load checker as Ruby plugin
  - a Debian init script to run it as daemon
In subdirectories for DSPAM and Rspamd:
  - a complete Spoolinger configuration
  - the corresponding dovecot-antispam configuration which
    can be dropped in /etc/dovecot/conf.d/


[1] http://johannes.sipsolutions.net/Projects/dovecot-antispam
