miovisman / normemail
Normalization of email for bans, for request cache to SFS or for checking the uniqueness of new users.
Installs: 38
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/miovisman/normemail
Requires
- php: >=5.6.0
 - ext-intl: *
 - ext-mbstring: *
 
This package is auto-updated.
Last update: 2025-10-11 17:20:42 UTC
README
Installation
composer require miovisman/normemail
normalize() method
$nEmail = new MioVisman\NormEmail\NormEmail(); $email = $nEmail->normalize($email);
- 
Method does not validate email address
 - 
Do not use normalized email to send emails
 - Use a normalized email to check the ban or uniqueness of the email of a new user. Check on the normalized emails ;)
 - The domain is lowercase (and in Punycode)
 - The local part is lowercase unless otherwise specified
 - The local part after the "+" is truncated (for Yahoo domains - after the "-")
 
// some string
                                      =>
ExampLe                               => example
ExampLe@                              => example@
exaMple.COM                           => example.com
.example.com                          => .example.com
@examPLe.com                          => example.com
"examPLe.com                          => "example.com
"USER+++NAME@EXAMpLE.com              => "USER+++NAME@example.com
googlemail.com                        => gmail.com
pm.me                                 => protonmail.com
yandex.tj                             => yandex.ru
ya.ru                                 => yandex.ru
.ya.ru                                => .yandex.ru
// Unicode
ПОЛЬЗОВАТЕЛЬ@домен.РУ                 => пользователь@xn--d1acufc.xn--p1ag
пользователь+тег@домен.ру             => пользователь@xn--d1acufc.xn--p1ag
// Gmail
User.namE+tag@gmail.com               => username@gmail.com
u.sern.ame+tag+tag+tag@googlemail.com => username@gmail.com
// Protonmail
u_s.e-rname+tag@pm.me                 => username@protonmail.com
user-name@protonmail.ch               => username@protonmail.com
// Yahoo (.com, .ae, .at, ...)
username-tag@yahoo.com                => username@yahoo.com
user+name-tag@yahoo.fr                => user+name@yahoo.fr
// Yandex (13 domains)
user.name+tag@яндекс.рф               => user-name@yandex.ru
user-name@yandex.com                  => user-name@yandex.ru
username@ya.ru                        => username@yandex.ru
License
This project is under MIT license. Please see the license file for details.