private static function myParse(string $emailAddress, ?string &$username = null, ?HostInterface &$host = null, ?string &$error = null): bool
    {
        if ($emailAddress === '') {
            $error = 'Email address "" is empty.';

            return false;
        }

        $parts = explode('@', $emailAddress, 2);
        if (count($parts) < 2) {
            $error = 'Email address "' . $emailAddress . '" is invalid: Character "@" is missing.';

            return false;
        }

        $username = $parts[0];
        $hostname = $parts[1];

        if (!self::myValidateUsername($username, $error)) {
            $error = 'Email address "' . $emailAddress . '" is invalid: ' . $error;

            return false;
        }

        if (!self::myParseHostname($hostname, $host, $error)) {
            $error = 'Email address "' . $emailAddress . '" is invalid: ' . $error;

            return false;
        }

        return true;
    }