Provided by: courier-mta_1.0.6-1build1_amd64 bug


       dupfilter - Sample Courier mail filter


       filterctl {[start] | [stop]} dupfilter


       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.


       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


       dupfilter uses the following configuration files. Changes to the following files do not
       take effect until the filter has been stopped and restarted.

           This file contains a single numerical value that sets the size of dupfilter's circular
           FIFO queue.

           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.

           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.

           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.




       Sam Varshavchik


        1. courierfilter(8)