From 4740b5ea9816e884ceba237496fc3fb7a50cd023 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 8 Apr 2014 09:08:56 +0000 Subject: scripts/report-spam: explain design decisions Trying my best to not forget things I wrote this years ago. --- scripts/report-spam | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'scripts/report-spam') diff --git a/scripts/report-spam b/scripts/report-spam index a0c6da36..75200431 100755 --- a/scripts/report-spam +++ b/scripts/report-spam @@ -2,6 +2,7 @@ # Copyright (C) 2008-2013, Eric Wong # License: GPLv3 or later # Usage: report-spam /path/to/message/in/maildir +# This is intended to be used with incron or similar systems. # my incrontab(5) looks like this: # /path/to/.maildir/cur IN_MOVED_TO /path/to/report-spam $@/$# # /path/to/.maildir/.INBOX.good/cur IN_MOVED_TO /path/to/report-spam $@/$# @@ -14,7 +15,16 @@ then exit fi -# only tested with the /usr/sbin/sendmail which ships with postfix +# Only tested with the /usr/sbin/sendmail which ships with postfix +# *** Why not call spamc directly in this script? *** +# I route this through my MTA so it gets queued properly. +# incrond has no concurrency limits and will fork a new process on +# every single event, which sucks with rename storms when a client +# commits folder changes. The sendmail executable exits quickly and +# queues up the message for training. This shoudl also ensure fairness +# to newly arriving mail. Instead of installing/configuring +# another queueing system, I reuse the queue in the MTA. +# See scripts/dc-dlvr for corresponding trainspam/trainham handlers. case $1 in *[/.]spam/cur/*) # non-new messages in spam get trained exec /usr/sbin/sendmail -oem -oi $USER+trainspam < $1 -- cgit v1.2.3-24-ge0c7