* Roman Neuhauser ([EMAIL PROTECTED]) wrote:

> Procmail:
>     + lots of prepackaged antispam filters

SpamAssassin rules all.

>     - config files resemble uuencoded assembler

They're quite easy to understand once you grasp them.

Would you prefer an XML format? :)

>     - quite resource-hungry (keeps the whole message in memory while
>       processing it)

Not an issue for me, I don't get large messages, and even if I did I
have about 250MB free.. :)

>     - reportedly isn't completely safe (can lose your mail)

Maybe if you forget to use a : :)

> Maildrop:
>     - not as popular as Procmail (fewer filter packages)
>     + square head is not a prerequisite to understand the configuration

As if anybody doesn't write their own ;)

>     - quite optimized (larger messages stored in temp files during
>       processing)
>     + should be safer than Procmail
> 
> In fact, I found only a *single* spam filter for Maildrop.

http://spamassassin.taint.org/

This used to use Mail::Audit, but various bugs in it have changed that
:)

> Now, what bugs me about both of these programs: to the best of my
> knowledge, neither offers you a real programming language.

Neither should, this is beyond their scope; if you want a real language,
run it through an external filter.

> This can be a plus, or a minus (YMMV), but imagine being able to write
> filters using a full-featured scripting language! This idea really
> attracts me, and I started prototyping such an MDA in PHP.

Argh, PHP for important system tasks, keep it away from me! ;)

> Using a scripting language has of course a few inherent drawbacks,
> but I don't think the speed decrease would be so horrible to mean
> anything on a single user box (as opposed to a corporate POP 3 server,
> for example). However, I know that I would benefit from the enhanced
> capabilities.

Well, how would you include a real programming language in a filter
specification without making the filter fragile and overcomplex?

Actually, with exceptions, powerful OO and lovely clean syntax, I
suspect you could do some interesting things with Ruby...

require 'autolist'

if list = MailingList.match(Mail)
        # (badly) strip [list-name] from subject
        Mail.subject.strip!(/\[.*\]/)
        Mail.deliver('lists/' + list)
end

Mm :)

> I'm slowly getting the picture of the classes that would make this
> happen, and would like to ask you: is there something that you sorely
> lack in your favorite MDA? What is it?

The ability to queue a bunch of messages and then run large scale
comparisons on them for decent dupe handling.  Only being able to look
at the current message and ones seen earlier makes this very difficult.

<looks at ruby-mda example and tries to stop getting ideas>

> -- FreeBSD 4.4-STABLE 1:33AM up 4 days, 7:57, 11 users, load
> averages: 0.02, 0.03, 0.00

Beat you.

-- 
Thomas 'Freaky' Hurst  -  [EMAIL PROTECTED]  -  http://www.aagh.net/
-
Just about the time when you think you can make ends meet
somebody moves the ends!

Reply via email to