Horde_ActiveSync_Imap_Message::_decodeTnefData PHP Méthode

_decodeTnefData() protected méthode

Convert a TNEF attachment into a multipart/mixed part.
protected _decodeTnefData ( integer | Horde_Mime_part $data ) : Horde_Mime_Part
$data integer | Horde_Mime_part Either a mime part id or a Horde_Mime_Part object containing the TNEF attachment.
Résultat Horde_Mime_Part The multipart/mixed MIME part containing any attachment data we can decode.
    protected function _decodeTnefData($data)
    {
        $wrapper = new Horde_Mime_Part();
        $wrapper->setType('multipart/mixed');
        if (!$data instanceof Horde_Mime_Part) {
            $mime_part = $this->getMimePart($data);
        } else {
            $mime_part = $data;
        }
        $tnef_parser = Horde_Compress::factory('Tnef');
        try {
            $tnef_data = $tnef_parser->decompress($mime_part->getContents());
        } catch (Horde_Compress_Exception $e) {
            return false;
        }
        if (!count($tnef_data)) {
            return false;
        }
        reset($tnef_data);
        while (list(, $data) = each($tnef_data)) {
            $tmp_part = new Horde_Mime_Part();
            $tmp_part->setName($data['name']);
            $tmp_part->setDescription($data['name']);
            $tmp_part->setContents($data['stream']);
            $type = $data['type'] . '/' . $data['subtype'];
            if (in_array($type, array('application/octet-stream', 'application/base64'))) {
                $type = Horde_Mime_Magic::filenameToMIME($data['name']);
            }
            $tmp_part->setType($type);
            $wrapper->addPart($tmp_part);
        }
        return $wrapper;
    }