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.

www.flickr.com
allanpaulkelly's items Go to allanpaulkelly's photostream
   
Last Updated
Sun Sep 26 21:18:35 2010