Provided by: courier-mta_0.47-13ubuntu5_i386 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 traffic.


       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) 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.