Index of /computing/parp/files

[ICO]NameLast modifiedSizeDescription

[PARENTDIR]Parent Directory  -  
[   ]COPYING2002-02-24 00:24 6.0K 
[   ]ChangeLog2002-04-29 16:17 62K 
[   ]FAQ2002-02-23 19:41 230  
[   ]MANIFEST2002-04-29 16:14 568  
[TXT]Mail-Box.patch2001-11-22 16:00 460  
[   ]Mail-Field-Received-0.23.tar.gz2000-10-13 16:45 9.9K 
[DIR]Mail/2002-03-12 11:26 -  
[   ]Makefile2004-08-15 20:04 22K 
[TXT]Makefile.PL2002-02-23 19:24 819  
[   ]Makefile.old2002-02-20 13:53 25K 
[TXT]MyFilter.pm.adam2001-11-23 19:54 42K 
[TXT]MyFilter.pm.sample2001-11-14 14:54 30K 
[   ]Parp-0.56.tar.gz2002-01-02 00:54 43K 
[   ]Parp-0.60.tar2002-04-29 16:17 240K 
[   ]Parp-0.60.tar.gz2002-02-24 12:25 55K 
[   ]Parp-0.62.tar.gz2002-04-29 18:37 58K 
[DIR]Parp/2002-04-29 18:12 -  
[TXT]README.html2003-11-01 22:59 12K 
[   ]TODO2002-04-02 14:12 4.8K 
[DIR]blib/2002-02-24 12:23 -  
[   ]parp2002-04-29 16:16 6.6K 
[   ]parp-0.55.tar.gz2001-10-21 21:59 38K 
[   ]parp-inject2002-01-02 00:32 15K 
[TXT]parp-inject.c2002-01-02 00:29 1.4K 
[   ]parp.Xrefs2001-11-01 15:53 201K 
[   ]parp.orig2001-05-14 16:07 42K 
[   ]parp.tar.gz2002-04-29 18:37 58K 
[   ]pm_to_blib2002-04-29 16:17 0  
[TXT]primitives.diff2002-02-24 23:52 15K 
[DIR]sample-confs/2002-04-29 18:12 -  
[TXT]sample-stats.txt2000-05-02 12:17 6.0K 
[   ]stats2002-04-23 13:34 10K 
[DIR]t/2002-02-23 19:24 -  

<#title>parp - Perl-based Anti-spam Replacement for Procmail <#def name="samples">files/sample-confs

parp - Perl-based Anti-spam Replacement for Procmail

<#exe>parp is a powerful, extensible, hackerware e-mail filter with sophisticated anti-spam capabilities. It's written in <#perl>, so theoretically it can be run on about 70 different platforms. However, it was written with UNIX systems in mind, and so far has only been tested on RedHat Linux.

N.B. The user configuration file is written in pure Perl. Please understand this means that unless you have a certain degree of experience in Perl or similar programming languages, you currently stand very little chance of being able to use the filter to its full potential. That's what I meant when I said it was hackerware. If you're in any doubt as to whether you'll be able to "hack it" (literally), take a look at the sample configuration files provided. If they look fairly understandable then chances are you can use parp. If not, you're welcome to try anyway, but I can't be held responsible for the consequences! (Not that I can anyway.)

Also please note: the filter is currently working beautifully for me, but has had next to no external testing. If you let it loose on your own e-mail, make sure you take the necessary precautions!

Motivation and goals

This was yet another personal itch which needed scratching. I receive between 5 and 20 spam e-mails most days. It wasn't only mildly annoying to have to hit delete more than normal, but I also forward all e-mail which ends up in my main inbox to my mobile (cell) phone via email2sms and an Internet/SMS gateway, and I was sick to death of my phone bleeping a lot through the day purely due to junk mail.

I started looking at all the available anti-spam filters. Over a period of two years, I looked at many, including the NAGS filter, despam, various complex anti-spam procmailrcs, the spamometer, blackmail, filter.plx, zfilter, spamstop, junkfilter ... but various things put me off all of them:

So, I resolved to write my own anti-spam filter, taking the best features of all the others. As I started, I realised that it wouldn't be that much more effort to scrap my .procmailrc and rewrite it as part of this filter, and it would be well worth the power gained. Besides, I was fed up of procmail's rather clumsy configuration language, and I missed not being able to use <#perl>'s regular expression syntax.

Features

Limitations

Wishlist

This has been moved into the TODO file in the release tarball.

Prerequisites

You'll need <#perl> 5.6.0 or later, and the following Perl modules, available from <#cpan>:

Download

Installation

Here are brief instructions (hey, I did say it was hackerware):

  1. Ensure you have the prerequisites installed.
  2. Install the <#pm>Parp::* modules via the standard Perl <#keyinput>perl Makefile.PL; make install procedure.
  3. Edit the configuration files <#pm><#samples> to suite your own filtering needs, and save them in <#dir>~/.parp (or elsewhere if you know how to instruct Perl to find it).
  4. Install <#exe>parp somewhere in your $PATH and check that it happily compiles by running it with the <#keyinput>-h option.
  5. Invoke <#exe>parp in test mode (the <#keyinput>-t option) as a filter (taking one e-mail from STDIN) or on one or more folders (with the <#keyinput>-f option).
  6. If you want to use parp in daemon mode (highly recommended), type <#keyinput>make parp-inject to compile the executable which inserts mails into the daemon queue. Then put something like <#keyinput>/path/to/parp-inject /home/me/mail/spool in your <#file>.forward or <#file>.qmail, or do whatever else is necessary to get your MDA using parp as a filter. Finally, start up the daemon with the option <#keyinput>-D /home/me/mail/spool.
  7. When you invoke parp, don't forget to enable the nice extras if appropriate, like the <#keyinput>-d option for discarding duplicates, or the <#keyinput>-r option for RSS cross-checking.
  8. Send yourself some test e-mails to make sure they're getting dealt with as you'd wish.
  9. Enjoy an almost spam-free life immediately.
  10. If the filter mistakenly classifies a spam as bona-fide, or vice-versa, invoke the filter on that e-mail with the <#keyinput>-w option. (Binding a key press in your favourite e-mail reader to pipe a selected e-mail to <#keyinput>parp -wv is recommended.) This writes a comment to the logfile that the filter got it wrong, which can be used by the accompanying statistics program. It also removes the appropriate addresses from the friends database if they happened to be in there already.
  11. Tweak the filter logic every time you notice the filter behaving an a way which doesn't satisfy you. Bind a key press in your mail reader to pipe a selected e-mail to <#keyinput>parp -vt. Test your new configuration easily using the above key press.

Documentation

There isn't currently much documentation except fairly completel pod for each of the modules. This will hopefully change soon. However, as noted above, you probably shouldn't be using this filter unless you have some experience as a (Perl) programmer, in which case you should hopefully find the code very readable. In particular, read the documentation for <#pm>Parp::Filter and <#pm>Parp::Config via <#keyinput>perldoc, as these should give you a fair idea of how to get started customising the filter to your own tastes.

Feedback

<#feedback>