Spaces:
No application file
No application file
namespace Mautic\CoreBundle\Helper; | |
class EmailAddressHelper | |
{ | |
/** | |
* Clean the email for comparison. | |
* | |
* @param string $email | |
*/ | |
public function cleanEmail($email): string | |
{ | |
return strtolower(preg_replace("/[^a-z0-9\+\.@]/i", '', $email)); | |
} | |
/** | |
* @return array<string> | |
*/ | |
public function getVariations(string $email): array | |
{ | |
$emails = [$email, $this->cleanEmail($email)]; | |
// email without suffix | |
preg_match('#^(.*?)\+(.*?)@(.*?)$#', $email, $parts); | |
if (!empty($parts)) { | |
$emails[] = $parts[1].'@'.$parts[3]; | |
} | |
return array_values(array_unique($emails)); | |
} | |
} | |