[Mimedefang] Somewhat off-topic: Perl module that might possible interest list members

Dianne Skoll dfs at roaringpenguin.com
Thu Sep 17 14:41:11 EDT 2015

Hi, all,

In addition to CanIt and MIMEDefang, I use the very capable Email::Filter
module for my personal email.  It acts as a local delivery agent
and automatically sorts my mail into specific folders and does some
other magic.

Anyway, I've created and uploaded a module called Mail::ThreadKiller
to CPAN.  Not indexed yet, but downloadable from:


I'll let the module description speak for itself.  And if anyone is
wondering, no, I have not needed to use this module on the MIMEDefang
list. :)



       This module is meant to be used within an email filter such as
       Email::Filter; specifically, it should be used in a filter that is run
       by a delivery agent so it runs as the particular user whose mail is
       being filtered---it is not suitable as a milter or any other type of
       central filter.

       Mail::ThreadKiller helps you discard or otherwise redirect entire
       message threads.  The basic idea is as follows:

       o   You use whatever criteria you like to detect the beginning of an
           email thread you'd like to kill.  Such criteria could include the
           subject, the sender, the recipient list, etc.  For example, a very
           common desire is to stop seeing all mail from a troublesome mailing
           list poster as well as any replies to a thread started by that
           poster.  In this case, your initial criterion could be the
           troublesome poster's email address in the From: header.

       o   Once you've detected the beginning of a thread, you kill the
           message.  You use Mail::ThreadKiller to add the Message-ID to a
           Berkeley database of IDs; we call this database the persistent
           database of killed threads or the kill database for short.  Then
           you configure your filter to dispose of the message however you

       o   For all other messages, you ask Mail::ThreadKiller if any Message-
           IDs in the "Message-ID:", "In-Reply-To:" or "References:" headers
           is in the kill database.  If so, Mail::ThreadKiller adds the
           current Message-ID to the database and returns true; you then
           dispose of the message according to your policy.  If the message
           does not refer to anything in the database, then Mail::ThreadKiller
           does nothing and your filter continues processing normally.

       o   Periodically, you run the script "threadkiller-clean-db.pl" to
           remove very old Message-IDs from the kill database.

More information about the MIMEDefang mailing list