NAME
dupfilter - Sample Courier mail filter
SYNOPSIS
filterctl [[start] | [stop]] [dupfilter]
DESCRIPTION
This is an example global mail filter written in C. This is a threaded
filter that tries to block junk E-mail by attempting to detect multiple
copies of the same message, which are rejected. This filter is
presented mostly for educational purposes. It´s method for detecting
duplicate messages is rather simplistic, and, over time, ways of
defeating it will certainly proliferate.
dupfilter works by calculating a hash value of the contents of every
message it sees. Hash values of recent messages are kept in a circular
FIFO queue. When dupfilter starts seeing messages with the same hash
value, it will reject them. The hash value is calculated in such a way
as to try to detect minor changes to messages´ contents that are
designed to avoid these kinds of filters, but it´s still not a very
sophisticated approach, and it can be easily fooled.
BUGS
This is not a very smart mail filter. The hash function is very simple
and is not expected to be very useful.
Don´t even think of using dupfilter on a machine that either runs a
mailing list, or contains mailboxes that subscribe to mailing lists.
dupfilter likes to bounce mailing list traffic.
FILES
dupfilter uses the following configuration files. Changes to the
following files do not take effect until the filter has been stopped
and restarted.
/etc/courier/filters/dupfilter-hashsize
This file contains a single numerical value that sets the size of
dupfilter´s circular FIFO queue.
/etc/courier/filters/dupfilter-duplevel
This file contains a single numerical value that sets how many
identical messages dupfilter will tolerate before blocking them.
When this many identical messages are seen, dupfilter will start
rejecting all messages with the same content.
/etc/courier/filters/dupfilter-mode
If this file exists and contains the word "all", dupfilter will
create its socket in /var/lib/courier/allfilters, otherwise the
socket will be created in /var/lib/courier/filters, see
courierfilter(8)[1] for more information.
/etc/courier/filters/dupfilter-nthreads
This file contains a single numerical value that sets the number of
threads created (each thread is used to calculate a message´s hash
value). The default number of threads is 4.
SEE ALSO
courierfilter(8)[1].
NOTES
1. courierfilter(8)
[set $man.base.url.for.relative.links]/courierfilter.html