1 dc-dlvr spam/ham training system flow
2 -------------------------------------
4 An overview of the Maildir + inotify-based spam training system Eric
5 uses on his mail server. This idea may be implemented for kqueue-based
8 The idea is to use inotify (via incron) to watch for new files appearing
9 in Maildirs. We only want to train seen messages as ham, and old (but
10 not necessarily seen) messages as spam. The overall goal of this is to
11 allow a user to train their filters without leaving his favorite mail
14 Every message written to Maildir involves a rename, so we only
15 have incron watch for IN_MOVED_TO events.
17 The generic flow is as follows, all for a single Unix user account:
19 incron -> report-spam +-> sendmail -> MTA -> dc-dlvr -> spamc -> spamd
24 For public-inbox, Eric uses a separate Unix account ("pi") to add a
25 layer of protection from fat-fingering something. So his report-spam
26 script delivers to a second recipient for training, the "pi" user:
29 +-> sendmail -> MTA -> dc-dlvr
37 public-inbox-learn will then internally handle the "spamc -> spamd"
38 delivery path as well as removing the message from the git tree.
40 * incron - run commands based on filesystem events: http://incron.aiken.cz/
42 * sendmail / MTA - we use and recommend use postfix, which includes a
43 sendmail-compatible wrapper: http://www.postfix.org/
45 * spamc / spamd - SpamAssassin: http://spamassassin.apache.org/
47 * report-spam / dc-dlvr - distributed with public-inbox in the scripts/
48 directory: git clone https://public-inbox.org/public-inbox.git