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.