Bug #64981 [Com]: Email with multiple period in a row fail

From: Date: Fri, 20 Mar 2015 01:32:36 +0000
Subject: Bug #64981 [Com]: Email with multiple period in a row fail
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-191474@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=64981&edit=1

 ID:                 64981
 Comment by:         ppaisndud at gmail dot com
 Reported by:        fillmorejd at gmail dot com
 Summary:            Email with multiple period in a row fail
 Status:             Open
 Type:               Bug
 Package:            Filter related
 Operating System:   Mac Mountain Lion
 PHP Version:        5.4.15
 Block user comment: N
 Private report:     N

 New Comment:

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


Previous Comments:
------------------------------------------------------------------------
[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)

« previous php.bugs (#191474) next »