[exim] Does EXIM need a new scripting language? - YES

Góra strony
Delete this message
Reply to this message
Autor: Marc Perkel
Data:  
Dla: exim-users
Temat: [exim] Does EXIM need a new scripting language? - YES
OK - I want to throw out a proposal to make a major change to Exim - the
scripting language. And before you all start screaming - the idea would
be to leave the existing language in for compatibility.

Why do this? because the scripting is not intuitive. I've been using
this language for 4 years and I still don't get it - and I've written
compilers and invented programming languages.

Suppose I wanted to test to see if a header does not exist.

condition = !def:h_X-Mail-from:

or better:

condition = not header_exists X-Mail-from:

or this type of scripting should work:

condition = $h_X-Mail-from: = ""

It takes me hours to do what should take seconds. Of course when I moved
from sendmail to Exim I though I died and went to heaven. But now - not
quite heaven.

Other Examples:

  condition = "${if and { \
                        {!eq {$interface_address}{127.0.0.1}} \
                        {!def:h_X-Spam-Status:} \
                        {!def:h_X-Mailman-host:} \
                        {!eq {$received_protocol}{ctyme-spam-scanned}} \
                        {!eq {$received_protocol}{local}} \
                        } {1}{0}}"


Should be:

condition = ($interface_address = 127.0.0.1) and
             (not header_exists(X-Spam-Status)) and
             (not header_exists(X-Mailman-host)) and
             ($received_protocol <> ctyme-spam-scanned) and
             ($received_protocol <> local)


It needs to read easy - be intuitive.