Comments (4)
The part of C0 (U+0000 - U+000F) and C1(U+0080 – U+009F) are also bypassed. I could not found the range of U+0000 - U+000F in the definition of local part (RFC5322BNF.html)
use Egulias\EmailValidator\EmailValidator;
$validator = new EmailValidator;
for ($i = 0; $i < 0x100; ++$i) {
$c = utf8_chr($i);
$email = $c .'[email protected]';
if ($validator->isValid($email)) {
if (preg_match('/\p{Cc}/u', $c)) {
$number = strtoupper(dechex($i));
$length = strlen($number);
$number = str_repeat('0', 4 - $length).$number;
echo 'U+'.$number.' ';
}
}
}
echo PHP_EOL;
function utf8_chr($code_point) {
if ($code_point < 0 || 0x10FFFF < $code_point || (0xD800 <= $code_point && $code_point <= 0xDFFF)) {
return '';
}
if ($code_point < 0x80) {
$hex[0] = $code_point;
$ret = chr($hex[0]);
} else if ($code_point < 0x800) {
$hex[0] = 0x1C0 | $code_point >> 6;
$hex[1] = 0x80 | $code_point & 0x3F;
$ret = chr($hex[0]).chr($hex[1]);
} else if ($code_point < 0x10000) {
$hex[0] = 0xE0 | $code_point >> 12;
$hex[1] = 0x80 | $code_point >> 6 & 0x3F;
$hex[2] = 0x80 | $code_point & 0x3F;
$ret = chr($hex[0]).chr($hex[1]).chr($hex[2]);
} else {
$hex[0] = 0xF0 | $code_point >> 18;
$hex[1] = 0x80 | $code_point >> 12 & 0x3F;
$hex[2] = 0x80 | $code_point >> 6 & 0x3F;
$hex[3] = 0x80 | $code_point & 0x3F;
$ret = chr($hex[0]).chr($hex[1]).chr($hex[2]).chr($hex[3]);
}
return $ret;
}
from emailvalidator.
Hi @masakielastic !
Great report, thanks!
Sorry for my late response but I've been pretty busy these days.
I'll work on this as soon as I can. If you can provide a PR I'll gladly merge it!
from emailvalidator.
Hi!
Can you check release 1.2.6 and close the issue if corresponds? Thanks!
from emailvalidator.
@masakielastic I'll close this, please check version 1.2.7. If you find more issues, please create new ones.
Thanks!
from emailvalidator.
Related Issues (20)
- Mail not being sent because of failed validation HOT 2
- Why is [email protected] valid? HOT 5
- DNS record check should pass if email address has no top-level domain HOT 5
- Support Doctrine Lexer v2.x + v3.x HOT 3
- Several changes did not make it in 3.2.2 (Bad merge?) HOT 33
- Test ticket from Code Climate
- Constructor DNSRecords may be passed a bool as first argument
- Migration Guide V3 => V4 HOT 4
- Trailing non-breaking space is valid? HOT 1
- RE: Emails with no top level domain suffix are coming through as valid HOT 5
- 3.x branch EOL date? HOT 1
- 4.x errors with laravel 9
- When email top level domain valid but subdomain invalid then check still passes HOT 6
- Since symfony/validator 6.2: The "loose" mode is deprecated. It will be removed in 7.0 and the default mode will be changed to "html5" HOT 5
- Validation permits NUL bytes HOT 1
- test @testmail.com is marked as a valid email HOT 2
- Validation passes for misspelt email addresses. HOT 4
- ExpectingQPair.php does not comply with psr-4 autoloading standard. Skipping.
- DNSCheckValidation returns true for all HOT 1
- dns_get_record in src/Validation/DNSCheckValidation.php return false for outlook emails.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from emailvalidator.