Thanks for reporting this! I wasn't even aware that Mahara had code that
was trying to validate email addresses via a simple regex like that. The
code in question is pretty old, originally written in 2007 and last
updated in 2009 (to allow a "+" sign in the alias part of the email
address.)

Of course since then, the number of top-level domain names has exploded.
There used to be only a few rare ones longer than four characters; now
there are dozens: https://en.wikipedia.org/wiki/List_of_Internet_top-
level_domains#ICANN-era_generic_top-level_domains.

I find a few issues mentioned with PHP's "FILTER_VALIDATE_EMAIL" option,
specifically:

1. Requires a "." in the domain name, so it fails on eg "root@localhost"
2. Doesn't work with emails containing non-ASCII characters. You can convert 
the domain part to punycode first, but I'm not sure if that works for the alias 
part.

On the other hand, both of those bugs are present in the current
implementation! So switching to FILTER_VALIDATE_EMAIL would at least be
an improvement.

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask 
on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1615280

Title:
  Email validation bug (long domains)

Status in Mahara:
  In Progress
Status in Mahara 15.04 series:
  In Progress
Status in Mahara 15.10 series:
  In Progress
Status in Mahara 16.04 series:
  In Progress
Status in Mahara 16.10 series:
  In Progress

Bug description:
  This one has existed since 2006, but only become an issue with the
  opening up of TLDs over the past few years.
  (https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains)

  Currently the email validation in pieform limits the TLD to between 2-4 
characters (see pieform_rule_email() in 
htdocs/lib/pieforms/pieform/rules/email.php.)
  That means people from .horse, for example, can't register. Changing the 
regex fixed my immediate problem, haven't tested how the other email validation 
points react. They use FILTER_VALIDATE_EMAIL and PHPMailer::ValidateAddress, so 
might be better.

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1615280/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~mahara-contributors
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~mahara-contributors
More help   : https://help.launchpad.net/ListHelp

Reply via email to