Spaces:
No application file
No application file
| namespace Mautic\EmailBundle\MonitoredEmail\Processor; | |
| class Address | |
| { | |
| /** | |
| * @param string $addresses String of email address from an email header | |
| */ | |
| public static function parseList($addresses): array | |
| { | |
| $results = []; | |
| $parsedAddresses = imap_rfc822_parse_adrlist($addresses, 'default.domain.name'); | |
| foreach ($parsedAddresses as $parsedAddress) { | |
| if ( | |
| isset($parsedAddress->host) | |
| && '.SYNTAX-ERROR.' != $parsedAddress->host | |
| && 'default.domain.name' != $parsedAddress->host | |
| ) { | |
| $email = $parsedAddress->mailbox.'@'.$parsedAddress->host; | |
| $name = $parsedAddress->personal ?? null; | |
| $results[$email] = $name; | |
| } | |
| } | |
| return $results; | |
| } | |
| public static function parseAddressForStatHash($address): ?string | |
| { | |
| if (preg_match('#^(.*?)\+(.*?)@(.*?)$#', $address, $parts)) { | |
| if (strstr($parts[2], '_')) { | |
| // Has an ID hash so use it to find the lead | |
| [$ignore, $hashId] = explode('_', $parts[2]); | |
| return $hashId; | |
| } | |
| } | |
| return null; | |
| } | |
| } | |