private function toAddressObject($address) { $formatted = $address; if (is_string($formatted)) { $formatted = []; if ($this->isEmail($address)) { $formatted['email'] = $address; } elseif (preg_match('/"?(.[^"]*)?"?\\s*<(.+)>/', $address, $matches)) { $name = trim($matches[1]); $formatted['name'] = $matches[1]; $formatted['email'] = $matches[2]; } else { throw new \Exception('Invalid address format: ' . $address); } } return $formatted; }