LuKreme:
> On 17-Mar-2009, at 08:52, Victor Duchovni wrote:
> > On Tue, Mar 17, 2009 at 10:01:53AM -0400, Charles Marcus wrote:
> >> On 3/17/2009 9:43 AM, Erwan David wrote:
> >>> You may generate the pcre file with a line
> >>> /recipient_([...@_]+)@localdomain/    recipient+$...@localdomain
> >>>
> >>> for each valid recipient. This would preserve the validation of
> >>> recipient at RCPT TO stage.
> >>
> >> Interesting... and maybe a good candidate for my first usable  
> >> scripting
> >> attempt.
> >
> > Perl is the natural choice for this:
> >
> >    $ echo u...@example.com |
> >     domain=example.com perl -lpe '
> >         s{^(.*)\...@\q$env{domain}\e$}
> >             {/^\Q$1\E_(.*)\...@\q$env{domain}\e\$/ 
> > $1+\${...@$env{domain}}o;'
> >    /^user_(.*)@example\.com$/ user+$...@example.com
> >
> > In practice instead of "echo ... |" Perl would read a list of  
> > addresses from
> > a file. The "\Q...\E" construct is the critical ingredient for  
> > quoting PCRE
> > special characters in the address localpart and domain.
> 
> I came up with this one liner:
> 
>   $ ls -1 /usr/local/virtual/ | grep "@" | sed 's/^\([...@]*\)@\(.*\)$/\/ 
> ^\1_\(.*\)@\2$\/ \1+$...@\2/'
> 
> testu...@example.com => /^testuser_(.*)@example.com$/ 
> testuser+$...@example.com

This is BROKEN. You are not escaping any of the regexp metacharacters
such as '.' and so on.

        Wietse

Reply via email to