Re: [Exim] regex and email validation

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Abaddon
CC: exim-users
Subject: Re: [Exim] regex and email validation
On Mon, 24 Feb 2003, Abaddon wrote:

> Hello, i am trying to make a ACL the deny emails
> with strange characthers, like:
>
>   deny    senders       = !
> ^.[a-z0-9_-]+(\.[a-z0-9_-]+)*@[a-z0-9_-]+(\.[a-z0-9_-]+)+

>
> If somene issues:
>
> mail from: tést@???
>
> it will deny, but
>
> mail from: test%as@???
>
> it will not deny...
>
> Is this regex wrong ?


Yes.

Lists in ACLs are string-expanded. Thus, \ is an escape character for
the expansion, and will have been removed from the regex before it is
processed. What the regex engine is seeing is

^.[a-z0-9_-]+(.[a-z0-9_-]+)*@[a-z0-9_-]+(.[a-z0-9_-]+)+

Can you now see why it fails?

The easiest way round this is to wrap your regex in \N...\N
so that the internal backslashes are left alone.

--
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.