Bug #64981 [Opn->Nab]: Email with multiple period in a row fail
Edit report at https://bugs.php.net/bug.php?id=64981&edit=1
ID: 64981
Updated by: requinix@php.net
Reported by: fillmorejd at gmail dot com
Summary: Email with multiple period in a row fail
-Status: Open
+Status: Not a bug
Type: Bug
Package: Filter related
Operating System: Mac Mountain Lion
PHP Version: 5.4.15
Block user comment: N
Private report: N
New Comment:
Tsk tsk, Gmail.
Previous Comments:
------------------------------------------------------------------------
[2015-03-20 01:32:35] ppaisndud at gmail dot com
local-part = dot-atom / quoted-string / obs-local-part dot-atom = [CFWS] dot-atom-text [CFWS]
dot-atom-text = 1*atext *("." 1*atext) quoted-string = [CFWS] DQUOTE *([FWS] qcontent)
[FWS] DQUOTE [CFWS] obs-local-part = word *("." word) word = atom / quoted-string atom =
[CFWS] 1*atext [CFWS]
RFC 5322 section 3.4.1
domain = dot-atom / domain-literal / obs-domain dot-atom = [CFWS] dot-atom-text [CFWS] dot-atom-text
= 1*atext *("." 1*atext)
RFC 5322 section 3.4.1
Domain = sub-domain *("." sub-domain)
RFC 5321 section 4.1.2
from http://isemail.info/exa......mple%40gmail.com
believe this can be closed
------------------------------------------------------------------------
[2013-07-19 19:52:30] mail+php at requinix dot net
Multiple consecutive periods in normal email addresses really is invalid. The fact
that Gmail supports it does not make it valid.
Both RFC 5321 (SMTP) and 5322 (Internet Message Format) paraphrased say:
addr-spec = dot-atom "@" domain
dot-atom = atext+ ("." atext+)*
atext = letters | digits | some symbols not including "."
------------------------------------------------------------------------
[2013-06-06 20:33:36] fillmorejd at gmail dot com
Description:
------------
Email with multiple period in a row fail validation when they are working email.
With gmail you can add periods into any email address and it will still deliver.
I use this to filter out messages. example@gmail.com is the same as
exam.....ple@gmail.com or exam.ple@gmail.com or exam.p.l.e@gmail.com.
With one period or if there is a letter or number between period the
FILTER_VALIDATE_EMAIL works just fine but if more than one period it fails.
Test script:
---------------
<?php
$email_a = 'exmple@gmail.com';
$email_b = 'exm.a.p.le@gmail.com';
$email_c = 'exa......mple@gmail.com';
if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
echo "This ($email_a) email address is considered valid.\n";
} else {
echo "$email_a failed\n";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
echo "This ($email_b) email address is considered valid.\n";
} else {
echo "$email_b failed\n";
}
if (filter_var($email_c, FILTER_VALIDATE_EMAIL)) {
echo "This ($email_c) email address is considered valid.\n";
} else {
echo "$email_c failed\n";
}
Expected result:
----------------
This (exmple@gmail.com) email address is considered valid.
This (exm.a.p.le@gmail.com) email address is considered valid.
This (exa......mple@gmail.com) email address is considered valid.
Actual result:
--------------
This (exmple@gmail.com) email address is considered valid.
This (exm.a.p.le@gmail.com) email address is considered valid.
exa......mple@gmail.com failed
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=64981&edit=1
Thread (4 messages)