That uses a very bad regex under the hood afaik. Its not nearly as good as it should be. Plus it can be changed server side with a php.ini configuration variable, which I dislike very much.
On Wed, 26 Jan 2011 13:48:44 +0100, Lukas Kahwe Smith <[email protected]> wrote: > What about > > filter_var($email, FILTER_VALIDATE_EMAIL) ? > > On 26.01.2011, at 13:47, Jordi Boggiano wrote: > >> And the link might be helpful.. http://www.dominicsayers.com/isemail/ >> >> On Wed, Jan 26, 2011 at 1:46 PM, Jordi Boggiano <[email protected]> >> wrote: >>> This code includes a whole battery of tests with enormous details so >>> I'd tend to believe it is compliant to the spec. The code is BSD so we >>> could include it in the EmailValidator with proper attribution I >>> guess. >>> >>> Cheers >>> >>> On Wed, Jan 26, 2011 at 4:17 AM, Jeremy Mikola <[email protected]> >>> wrote: >>>> We encountered this at OpenSky (the exception during attempted >>>> delivery to >>>> such a bad address) and actually ended up writing a second regex >>>> validation >>>> constraint to ensure there was no dot immediately before or after the >>>> "@" >>>> separator. >>>> >>>> This is a fairly nice write-up on various regex patterns: >>>> http://fightingforalostcause.net/misc/2006/compare-email-regex.php >>>> >>>> And a SO question with plenty of resources: >>>> http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses >>>> >>>> >>>> On Tue, Jan 25, 2011 at 8:45 PM, ryan weaver <[email protected]> >>>> wrote: >>>>> >>>>> Hey Jean- >>>>> Yes, I've run into this problem before as well - the email passes >>>>> validation, but then fails in Swift due to a format like >>>>> [email protected]. >>>>> I don't know much more about this, though I'm assuming that the giant >>>>> regex is dependable. I'd want to hear thoughts on if this is the >>>>> "best-practice" regex or if it's just so heavy that it's unreasonable >>>>> to >>>>> use. It could potentially be used in the Symfony2 EmailValidator >>>>> class. >>>>> Ryan Weaver >>>>> Lead Programmer - iostudio - Nashville, TN >>>>> http://www.iostudio.com >>>>> http://www.thatsquality.com >>>>> Twitter: @weaverryan >>>>> >>>>> >>>>> On Sun, Jan 23, 2011 at 2:02 PM, Jean-Philippe Caissy >>>>> <[email protected]> >>>>> wrote: >>>>>> >>>>>> First of all, I can't post a bug on Trac for an unknown reason, I get >>>>>> an exception and trac fails. >>>>>> >>>>>> The problem I had this afternoon came from a user who tried to >>>>>> register with an invalid email address. However, even though the >>>>>> email >>>>>> address does not comply with RFC 2822, 3.6.2, it got validated by >>>>>> sfValidatorEmail. >>>>>> >>>>>> You can try with any address which has a dot before the @: >>>>>> [email protected] >>>>>> >>>>>> The regex used by sfValidatorEmail should be updated to fully comply >>>>>> with RFC. I am currently using Switf's regex which is quite long but >>>>>> works better: >>>>>> >>>>>> /^(?:(?:(?:(?:(?:(?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r >>>>>> \n))?[ >>>>>> \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B >>>>>> \x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ \t])?\)))*(?:(?:(?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?: >>>>>> [ \t]*(?:\r\n))?[ \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21- >>>>>> \x27\x2A-\x5B\x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?: >>>>>> (?:[ \t]*(?:\r\n))?[ \t])?\)))|(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])))?(?:[a-zA- >>>>>> Z0-9!#\$%&'\*\+\-\/=\?\^_`\{\}\|~]+(\.[a-zA-Z0-9!#\$%&'\*\+\-\/=\?\^_`\ >>>>>> {\}\|~]+)*)+(?:(?:(?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ >>>>>> \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B >>>>>> \x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ \t])?\)))*(?:(?:(?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?: >>>>>> [ \t]*(?:\r\n))?[ \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21- >>>>>> \x27\x2A-\x5B\x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?: >>>>>> (?:[ \t]*(?:\r\n))?[ \t])?\)))|(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])))?)|(?:(?: >>>>>> (?:(?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])|(?: >>>>>> (?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\ >>>>>> \[\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ \t])? >>>>>> \)))*(?:(?:(?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))? >>>>>> [ >>>>>> \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D- >>>>>> \x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ >>>>>> \t]*(?:\r\n))? >>>>>> [ \t])?\)))|(?:(?:[ \t]*(?:\r\n))?[ \t])))?"((?:(?:[ \t]*(?:\r\n))? >>>>>> [ \t])?(?:(?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21\x23-\x5B\x5D- >>>>>> \x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E-\x7F])))*(?:(?:[ \t]*(?:\r\n))? >>>>>> [ \t])?"(?:(?:(?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ >>>>>> \t]*(?:\r\n))? >>>>>> [ >>>>>> \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D- >>>>>> \x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ >>>>>> \t]*(?:\r\n))? >>>>>> [ \t])?\)))*(?:(?:(?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ >>>>>> \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B >>>>>> \x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ \t])?\)))|(?:(?:[ \t]*(?:\r\n))?[ \t])))?))@(?:(?:(?:(?:(?:(?: >>>>>> [ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])|(?:(?:[\x01- >>>>>> \x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\\[\x00- >>>>>> \x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])?\)))*(?:(?: >>>>>> (?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])|(?:(?: >>>>>> [\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\\ >>>>>> [\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])?\)))| >>>>>> (?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])))?(?:[a-zA-Z0-9!#\$%&'\*\+\-\/=\?\^_`\{\} >>>>>> \|~]+(\.[a-zA-Z0-9!#\$%&'\*\+\-\/=\?\^_`\{\}\|~]+)*)+(?:(?:(?:(?: >>>>>> [ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])|(?:(?:[\x01- >>>>>> \x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\\[\x00- >>>>>> \x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])?\)))*(?:(?: >>>>>> (?:(?:[ \t]*(?:\r\n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])|(?:(?: >>>>>> [\x01-\x08\x0B\x0C\x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\\ >>>>>> [\x00-\x08\x0B\x0C\x0E-\x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])?\)))| >>>>>> (?:(?:[ \t]*(?:\r\n))?[ \t])))?)|(?:(?:(?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])? >>>>>> (\((?:(?:(?:[ \t]*(?:\r\n))?[ \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E- >>>>>> \x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E- >>>>>> \x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ \t])?\)))*(?:(?:(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])|(?:(?:[\x01-\x08\x0B\x0C >>>>>> \x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C >>>>>> \x0E-\x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ \t])?\)))|(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ \t])))?\[((?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])?(?:(?:[\x01-\x08\x0B\x0C >>>>>> \x0E-\x19\x7F]|[\x21-\x5A\x5E-\x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E- >>>>>> \x7F])))*?(?:(?:[ \t]*(?:\r\n))?[ \t])?\](?:(?:(?:(?:[ \t]*(?:\r\n))? >>>>>> [ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])|(?:(?:[\x01-\x08\x0B\x0C\x0E- >>>>>> \x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C\x0E- >>>>>> \x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ \t])?\)))*(?:(?:(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ \t])?(\((?:(?:(?:[ \t]*(?:\r\n))?[ >>>>>> \t])|(?:(?:[\x01-\x08\x0B\x0C >>>>>> \x0E-\x19\x7F]|[\x21-\x27\x2A-\x5B\x5D-\x7E])|(?:\\[\x00-\x08\x0B\x0C >>>>>> \x0E-\x7F])|(?1)))*(?:(?:[ \t]*(?:\r\n))?[ \t])?\)))|(?:(?:[ >>>>>> \t]*(?:\r >>>>>> \n))?[ \t])))?)))$/D >>>>>> >>>>>> -- >>>>>> If you want to report a vulnerability issue on symfony, please send >>>>>> it to >>>>>> security at symfony-project.com >>>>>> >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "symfony developers" group. >>>>>> To post to this group, send email to [email protected] >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected] >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/symfony-devs?hl=en >>>>> >>>>> -- >>>>> If you want to report a vulnerability issue on symfony, please send >>>>> it to >>>>> security at symfony-project.com >>>>> >>>>> You received this message because you are subscribed to the Google >>>>> Groups "symfony developers" group. >>>>> To post to this group, send email to [email protected] >>>>> To unsubscribe from this group, send email to >>>>> [email protected] >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/symfony-devs?hl=en >>>> >>>> >>>> >>>> -- >>>> jeremy mikola >>>> >>>> -- >>>> If you want to report a vulnerability issue on symfony, please send it >>>> to >>>> security at symfony-project.com >>>> >>>> You received this message because you are subscribed to the Google >>>> Groups "symfony developers" group. >>>> To post to this group, send email to [email protected] >>>> To unsubscribe from this group, send email to >>>> [email protected] >>>> For more options, visit this group at >>>> http://groups.google.com/group/symfony-devs?hl=en >>>> >>> >>> >>> >>> -- >>> Jordi Boggiano >>> @seldaek :: http://seld.be/ >>> >> >> >> >> -- >> Jordi Boggiano >> @seldaek :: http://seld.be/ >> >> -- >> If you want to report a vulnerability issue on symfony, please send it >> to security at symfony-project.com >> >> You received this message because you are subscribed to the Google >> Groups "symfony developers" group. >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://groups.google.com/group/symfony-devs?hl=en > > Lukas Kahwe Smith > [email protected] -- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/symfony-devs?hl=en
