Viktor Dukhovni: > On Wed, Nov 12, 2014 at 05:56:38PM +0100, A. Schulze wrote: > > > > wietse: > > >/^(RCPT\s+TO:<.*>.*\s+NOTIFY=.*)/ $1 > > >/^(RCPT\s+TO:<.*>.*)/ $1 NOTIFY=SUCCESS,DELAY,FAILURE > > > > the regex above don't match on 'RCPT TO: <u...@example.org>' ( SPACE after > > colon ) > > Note the extra space violates RFCs 5321, 2821, 821. However, it > was historically accepted by Sendmail, and is accepted also by > Postfix as a compatibility crutch. > > > I use now: > > /^(RCPT\s+TO:\s*<.*>.*\s+NOTIFY=.*)/ $1 > > /^(RCPT\s+TO:\s*<.*>.*)/ $1 NOTIFY=SUCCESS,DELAY,FAILURE > > So a cleaner approach might be: > > /^RCPT\s+TO:\s*(<.*?>.*?)\s+(NOTIFY=.*)/ RCPT TO:$1 $2 > /^RCPT\s+TO:\s*(<.*>.*)/ RCPT TO:$1 NOTIFY=SUCCESS,DELAY,FAILURE > > [ Since vertical tabs, and other notional PCRE white-space characters > are not SMTP white-space, PCRE whitespace matched with "\s+" is > canonicalized to a space. ]
I suppose that "clean" is in the eye of the beholder. I don't think that we have to perpetuate workarounds for bugs that were already uncommon 20 years ago. Wietse