if the joker has arranged an SPF record at #ha*&(!LN.com I'm all for accepting mail from him.
The disadvantage of making the test more complex is simply that the complexity is needless. A meaningless edge case that does no harm is being categorically ruled out. When e-mail addresses (and this has already occurred i believe) start including unicode, when dns starts including unicode, to work with the extended possibilities addresses wil have to match all kinds of strings that would nonsense. I think the best approach, and I don't have any standing here so I may be talking nonsense, is to accept anything and then munge it so it doesn't interfere with the internal formatting. Something like ($userpart, $domain) = $rcpttoline =~ /<([EMAIL PROTECTED])\@([^\>]+)/ or DENY(501,"please enclose [EMAIL PROTECTED] address in <angle brackets>"); $userpart =~ s/\W/sprintf '#%X#',ord $1/ge; $domain =~ s/[^\w\.\-]/sprintf '#%X#',ord $1/ge; -- David L Nicol getting even worse at mindreading as I get older