pop_filter Server-side POP3 tool

Allan Kelly : pop_filter Server-side POP3 tool

pop_filter Processes POP3 email server-side

Spam is a problem for nearly everyone, some worse than others. When my domain was used by spammers to masquerade their rubbish, I began to receive hundreds of responses to their spam - nearly all of which were simple 'address not known' errors. To enable me to use my email account again, I wrote this program. It processes email server-side, so the rubbish is deleted without ever coming near your computer - no chance of viruses, and no wasted downloading and deleting time.

There are more complex programs around to deal with email, but I pop_filter does a very simple job: based only upon email headers and two lists of text patterns, pop_filter keeps or deletes your email on the server. I find that this clears out 90-100% of my spam without any interaction from me.

The two lists are pop_keep and pop_delete. If a message's headers match a pop_keep pattern then it is kept. Otherwise if the message's headers match a pop_delete pattern then it is deleted. Otherwise the message is kept in AUTO mode, or the user is prompted for a decision in DEFAULT mode. This is all very fast and once you have reasonable pop_keep and pop_delete lists then you should find that your spam problem is hugely reduced.

Once again, this is a Perl program so you'll need Perl (free from ActiveState for Windows and probably already on your favourite Unix).

The pop_filter script is here. Unzip it to disk and run it - it will prompt you for your server details and offer to remember these by saving them to a local file. Obviously there is a degree of insecurity there, so it's up to you. By default you'll be in a mode where you're asked what to do with unmatched messages. Typing h at the prompt gives you the full range of commands available - this is loosely modelled on the Unix 'mail' command interface. This help message is reproduced below.

pop_filter.pl by allan. Version 28/02/2005

Commands:
        n : keep this msg
        y : delete this msg
        k (a|n|n-m) : keep this message/all msgs/msg n/msgs n to m
        d (a|n|n-m) : delete this message/all msgs/msg n/msgs n to m
        m (n|n-m) : apply keep & delete lists to all messages/msg n/msgs n to m
	!regexp : add regexp to the pop_keep list
        /regexp : add regexp to the pop_delete list
        q(!) : quit deleting marked msgs (! - do not delete)
Modes:
        a : move to auto mode, keep all not in pop_delete list
        i : move to interactive mode, prompt for all messages
        u : move to default mode, prompt only for unmatched messages
Info:
        t (n): print full headers of this msg/msg n
        p (n) : print all of this msg/msg n
        l (n|n-m) : list msg headers for all msgs/msg n/msgs n to m
        s : print current status
        h : print this help

		  

If there is interest in this program I'll add more here, but for the meantime it's being doing the job for me for about a year and you may use it in any way you see fit - I simply ask that you credit me where due, and contact me if you are going to review or comment publicly on the program.

   
Last Updated
Mon Jun 28 22:00:05 2010