\Horde_Compress_Tnef

The Horde_Compress_Tnef class allows MS-TNEF data to be displayed.

Summary

Methods
Properties
Constants
__construct()
compress()
compressDirectory()
decompress()
getFiles()
getAttachments()
getMsgInfo()
setCurrentObject()
$canCompress
$canDecompress
PSETID_MEETING
PSETID_APPOINTMENT
PSETID_COMMON
PSETID_PUBLIC_STRINGS
PSETID_NOTE
PSETID_TASK
PSETID_MAPI
SIGNATURE
LVL_MESSAGE
LVL_ATTACHMENT
RTF_COMPRESSED
RTF_UNCOMPRESSED
AOWNER
ASENTFOR
AORIGINALMCLASS
ASUBJECT
ADATESENT
ADATERECEIVED
AFROM
ASTATUS
AMCLASS
AMESSAGEID
APARENTID
ACONVERSATIONID
ABODY
APRIORITY
ATTACHDATA
AFILENAME
ATTACHMETAFILE
ATTACHCREATEDATE
ADATEMODIFIED
ARENDDATA
AMAPIPROPS
ARECIPIENTTABLE
AMAPIATTRS
OEMCODEPAGE
AVERSION
ID_REQUEST_RESP
ID_FROM
AIDOWNER
ID_DATE_START
ID_DATE_END
MAPI_TYPE_UNSPECIFIED
MAPI_NULL
MAPI_SHORT
MAPI_INT
MAPI_FLOAT
MAPI_DOUBLE
MAPI_CURRENCY
MAPI_APPTIME
MAPI_ERROR
MAPI_BOOLEAN
MAPI_OBJECT
MAPI_INT8BYTE
MAPI_STRING
MAPI_UNICODE_STRING
MAPI_SYSTIME
MAPI_CLSID
MAPI_BINARY
MAPI_MEETING_INITIAL
MAPI_MEETING_FULL_UPDATE
MAPI_MEETING_INFO
MAPI_MESSAGE_CLASS
MAPI_TAG_SUBJECT_PREFIX
MAPI_CONVERSATION_TOPIC
MAPI_SENT_REP_NAME
MAPI_SENT_REP_EMAIL_ADDR
MAPI_DISPLAY_TO
MAPI_SENT_REP_SMTP_ADDR
MAPI_IN_REPLY_TO_ID
MAPI_CREATION_TIME
MAPI_MODIFICATION_TIME
MAPI_ATTACH_DATA
MAPI_ATTACH_EXTENSION
MAPI_ATTACH_LONG_FILENAME
MAPI_ATTACH_MIME_TAG
MAPI_ORIGINAL_CREATORID
MAPI_LAST_MODIFIER_NAME
MAPI_CODEPAGE
MAPI_SENDER_SMTP
MAPI_START_DATE
MAPI_END_DATE
MAPI_APPOINTMENT_SEQUENCE
MAPI_BUSY_STATUS
MAPI_MEETING_REQUEST_TYPE
MAPI_RESPONSE_REQUESTED
MAPI_APPOINTMENT_LOCATION
MAPI_APPOINTMENT_URL
MAPI_APPOINTMENT_START_WHOLE
MAPI_APPOINTMENT_END_WHOLE
MAPI_APPOINTMENT_DURATION
MAPI_APPOINTMENT_SUBTYPE
MAPI_APPOINTMENT_RECUR
MAPI_APPOINTMENT_STATE_FLAGS
MAPI_RESPONSE_STATUS
MAPI_RECURRING
MAPI_RECURRENCE_TYPE
MAPI_ALL_ATTENDEES
MAPI_TO_ATTENDEES
MAPI_TIMEZONE_STRUCT
MAPI_TIMEZONE_DESCRIPTION
MAPI_START_CLIP_START
MAPI_START_CLIP_END
MAPI_CONFERENCING_TYPE
MAPI_ORGANIZER_ALIAS
MAPI_APPOINTMENT_COUNTER_PROPOSAL
MAPI_TIMEZONE_START
MAPI_TIMEZONE_END
MAPI_TIMEZONE_DEFINITION_RECUR
MAPI_REMINDER_DELTA
MAPI_SIGNAL_TIME
MAPI_REMINDER_SIGNAL_TIME
MAPI_ENTRY_UID
MAPI_ENTRY_CLEANID
MAPI_MEETING_TYPE
MSG_EDITOR_FORMAT
MSG_EDITOR_FORMAT_UNKNOWN
MSG_EDITOR_FORMAT_PLAIN
MSG_EDITOR_FORMAT_HTML
MSG_EDITOR_FORMAT_RTF
MAPI_NAMED_TYPE_ID
MAPI_NAMED_TYPE_STRING
MAPI_NAMED_TYPE_NONE
MAPI_MV_FLAG
IPM_MEETING_REQUEST
IPM_MEETING_RESPONSE_POS
IPM_MEETING_RESPONSE_NEG
IPM_MEETING_RESPONSE_TENT
IPM_MEETING_REQUEST_CANCELLED
MAPI_MEETING_RESPONSE_POS
MAPI_MEETING_RESPONSE_NEG
MAPI_MEETING_RESPONSE_TENT
IPM_TASK_REQUEST
IPM_TASK_GUID
MAPI_TAG_BODY
MAPI_NATIVE_BODY
MAPI_TAG_HTML
MAPI_TAG_RTF_COMPRESSED
RECUR_DAILY
RECUR_WEEKLY
RECUR_MONTHLY
RECUR_YEARLY
PATTERN_DAY
PATTERN_WEEK
PATTERN_MONTH
PATTERN_MONTH_END
PATTERN_MONTH_NTH
RECUR_END_DATE
RECUR_END_N
_extractMapiAttributes()
_decodeAttachment()
_decodeMessageProperty()
_decodeAttribute()
_getx()
_geti()
_toNamespaceGUID()
$_logger
$_files
$_attachments
$_msgInfo
$_currentObject
N/A
No private methods found
No private properties found
N/A

Constants

PSETID_MEETING

PSETID_MEETING

PSETID_APPOINTMENT

PSETID_APPOINTMENT

PSETID_COMMON

PSETID_COMMON

PSETID_PUBLIC_STRINGS

PSETID_PUBLIC_STRINGS

PSETID_NOTE

PSETID_NOTE

PSETID_TASK

PSETID_TASK

PSETID_MAPI

PSETID_MAPI

SIGNATURE

SIGNATURE

LVL_MESSAGE

LVL_MESSAGE

LVL_ATTACHMENT

LVL_ATTACHMENT

RTF_COMPRESSED

RTF_COMPRESSED

RTF_UNCOMPRESSED

RTF_UNCOMPRESSED

AOWNER

AOWNER

ASENTFOR

ASENTFOR

AORIGINALMCLASS

AORIGINALMCLASS

ASUBJECT

ASUBJECT

ADATESENT

ADATESENT

ADATERECEIVED

ADATERECEIVED

AFROM

AFROM

ASTATUS

ASTATUS

AMCLASS

AMCLASS

AMESSAGEID

AMESSAGEID

APARENTID

APARENTID

ACONVERSATIONID

ACONVERSATIONID

ABODY

ABODY

APRIORITY

APRIORITY

ATTACHDATA

ATTACHDATA

AFILENAME

AFILENAME

ATTACHMETAFILE

ATTACHMETAFILE

ATTACHCREATEDATE

ATTACHCREATEDATE

ADATEMODIFIED

ADATEMODIFIED

ARENDDATA

ARENDDATA

AMAPIPROPS

AMAPIPROPS

ARECIPIENTTABLE

ARECIPIENTTABLE

AMAPIATTRS

AMAPIATTRS

OEMCODEPAGE

OEMCODEPAGE

AVERSION

AVERSION

ID_REQUEST_RESP

ID_REQUEST_RESP

ID_FROM

ID_FROM

AIDOWNER

AIDOWNER

ID_DATE_START

ID_DATE_START

ID_DATE_END

ID_DATE_END

MAPI_TYPE_UNSPECIFIED

MAPI_TYPE_UNSPECIFIED

MAPI_NULL

MAPI_NULL

MAPI_SHORT

MAPI_SHORT

MAPI_INT

MAPI_INT

MAPI_FLOAT

MAPI_FLOAT

MAPI_DOUBLE

MAPI_DOUBLE

MAPI_CURRENCY

MAPI_CURRENCY

MAPI_APPTIME

MAPI_APPTIME

MAPI_ERROR

MAPI_ERROR

MAPI_BOOLEAN

MAPI_BOOLEAN

MAPI_OBJECT

MAPI_OBJECT

MAPI_INT8BYTE

MAPI_INT8BYTE

MAPI_STRING

MAPI_STRING

MAPI_UNICODE_STRING

MAPI_UNICODE_STRING

MAPI_SYSTIME

MAPI_SYSTIME

MAPI_CLSID

MAPI_CLSID

MAPI_BINARY

MAPI_BINARY

MAPI_MEETING_INITIAL

MAPI_MEETING_INITIAL

MAPI_MEETING_FULL_UPDATE

MAPI_MEETING_FULL_UPDATE

MAPI_MEETING_INFO

MAPI_MEETING_INFO

MAPI_MESSAGE_CLASS

MAPI_MESSAGE_CLASS

MAPI_TAG_SUBJECT_PREFIX

MAPI_TAG_SUBJECT_PREFIX

MAPI_CONVERSATION_TOPIC

MAPI_CONVERSATION_TOPIC

MAPI_SENT_REP_NAME

MAPI_SENT_REP_NAME

MAPI_SENT_REP_EMAIL_ADDR

MAPI_SENT_REP_EMAIL_ADDR

MAPI_DISPLAY_TO

MAPI_DISPLAY_TO

MAPI_SENT_REP_SMTP_ADDR

MAPI_SENT_REP_SMTP_ADDR

MAPI_IN_REPLY_TO_ID

MAPI_IN_REPLY_TO_ID

MAPI_CREATION_TIME

MAPI_CREATION_TIME

MAPI_MODIFICATION_TIME

MAPI_MODIFICATION_TIME

MAPI_ATTACH_DATA

MAPI_ATTACH_DATA

MAPI_ATTACH_EXTENSION

MAPI_ATTACH_EXTENSION

MAPI_ATTACH_LONG_FILENAME

MAPI_ATTACH_LONG_FILENAME

MAPI_ATTACH_MIME_TAG

MAPI_ATTACH_MIME_TAG

MAPI_ORIGINAL_CREATORID

MAPI_ORIGINAL_CREATORID

MAPI_LAST_MODIFIER_NAME

MAPI_LAST_MODIFIER_NAME

MAPI_CODEPAGE

MAPI_CODEPAGE

MAPI_SENDER_SMTP

MAPI_SENDER_SMTP

MAPI_START_DATE

MAPI_START_DATE

MAPI_END_DATE

MAPI_END_DATE

MAPI_APPOINTMENT_SEQUENCE

MAPI_APPOINTMENT_SEQUENCE

MAPI_BUSY_STATUS

MAPI_BUSY_STATUS

MAPI_MEETING_REQUEST_TYPE

MAPI_MEETING_REQUEST_TYPE

MAPI_RESPONSE_REQUESTED

MAPI_RESPONSE_REQUESTED

MAPI_APPOINTMENT_LOCATION

MAPI_APPOINTMENT_LOCATION

MAPI_APPOINTMENT_URL

MAPI_APPOINTMENT_URL

MAPI_APPOINTMENT_START_WHOLE

MAPI_APPOINTMENT_START_WHOLE

MAPI_APPOINTMENT_END_WHOLE

MAPI_APPOINTMENT_END_WHOLE

MAPI_APPOINTMENT_DURATION

MAPI_APPOINTMENT_DURATION

MAPI_APPOINTMENT_SUBTYPE

MAPI_APPOINTMENT_SUBTYPE

MAPI_APPOINTMENT_RECUR

MAPI_APPOINTMENT_RECUR

MAPI_APPOINTMENT_STATE_FLAGS

MAPI_APPOINTMENT_STATE_FLAGS

MAPI_RESPONSE_STATUS

MAPI_RESPONSE_STATUS

MAPI_RECURRING

MAPI_RECURRING

MAPI_RECURRENCE_TYPE

MAPI_RECURRENCE_TYPE

MAPI_ALL_ATTENDEES

MAPI_ALL_ATTENDEES

MAPI_TO_ATTENDEES

MAPI_TO_ATTENDEES

MAPI_TIMEZONE_STRUCT

MAPI_TIMEZONE_STRUCT

MAPI_TIMEZONE_DESCRIPTION

MAPI_TIMEZONE_DESCRIPTION

MAPI_START_CLIP_START

MAPI_START_CLIP_START

MAPI_START_CLIP_END

MAPI_START_CLIP_END

MAPI_CONFERENCING_TYPE

MAPI_CONFERENCING_TYPE

MAPI_ORGANIZER_ALIAS

MAPI_ORGANIZER_ALIAS

MAPI_APPOINTMENT_COUNTER_PROPOSAL

MAPI_APPOINTMENT_COUNTER_PROPOSAL

MAPI_TIMEZONE_START

MAPI_TIMEZONE_START

MAPI_TIMEZONE_END

MAPI_TIMEZONE_END

MAPI_TIMEZONE_DEFINITION_RECUR

MAPI_TIMEZONE_DEFINITION_RECUR

MAPI_REMINDER_DELTA

MAPI_REMINDER_DELTA

MAPI_SIGNAL_TIME

MAPI_SIGNAL_TIME

MAPI_REMINDER_SIGNAL_TIME

MAPI_REMINDER_SIGNAL_TIME

MAPI_ENTRY_UID

MAPI_ENTRY_UID

MAPI_ENTRY_CLEANID

MAPI_ENTRY_CLEANID

MAPI_MEETING_TYPE

MAPI_MEETING_TYPE

MSG_EDITOR_FORMAT

MSG_EDITOR_FORMAT

MSG_EDITOR_FORMAT_UNKNOWN

MSG_EDITOR_FORMAT_UNKNOWN

MSG_EDITOR_FORMAT_PLAIN

MSG_EDITOR_FORMAT_PLAIN

MSG_EDITOR_FORMAT_HTML

MSG_EDITOR_FORMAT_HTML

MSG_EDITOR_FORMAT_RTF

MSG_EDITOR_FORMAT_RTF

MAPI_NAMED_TYPE_ID

MAPI_NAMED_TYPE_ID

MAPI_NAMED_TYPE_STRING

MAPI_NAMED_TYPE_STRING

MAPI_NAMED_TYPE_NONE

MAPI_NAMED_TYPE_NONE

MAPI_MV_FLAG

MAPI_MV_FLAG

IPM_MEETING_REQUEST

IPM_MEETING_REQUEST

IPM_MEETING_RESPONSE_POS

IPM_MEETING_RESPONSE_POS

IPM_MEETING_RESPONSE_NEG

IPM_MEETING_RESPONSE_NEG

IPM_MEETING_RESPONSE_TENT

IPM_MEETING_RESPONSE_TENT

IPM_MEETING_REQUEST_CANCELLED

IPM_MEETING_REQUEST_CANCELLED

MAPI_MEETING_RESPONSE_POS

MAPI_MEETING_RESPONSE_POS

MAPI_MEETING_RESPONSE_NEG

MAPI_MEETING_RESPONSE_NEG

MAPI_MEETING_RESPONSE_TENT

MAPI_MEETING_RESPONSE_TENT

IPM_TASK_REQUEST

IPM_TASK_REQUEST

IPM_TASK_GUID

IPM_TASK_GUID

MAPI_TAG_BODY

MAPI_TAG_BODY

MAPI_NATIVE_BODY

MAPI_NATIVE_BODY

MAPI_TAG_HTML

MAPI_TAG_HTML

MAPI_TAG_RTF_COMPRESSED

MAPI_TAG_RTF_COMPRESSED

RECUR_DAILY

RECUR_DAILY

RECUR_WEEKLY

RECUR_WEEKLY

RECUR_MONTHLY

RECUR_MONTHLY

RECUR_YEARLY

RECUR_YEARLY

PATTERN_DAY

PATTERN_DAY

PATTERN_WEEK

PATTERN_WEEK

PATTERN_MONTH

PATTERN_MONTH

PATTERN_MONTH_END

PATTERN_MONTH_END

PATTERN_MONTH_NTH

PATTERN_MONTH_NTH

RECUR_END_DATE

RECUR_END_DATE

RECUR_END_N

RECUR_END_N

Properties

$canCompress

$canCompress : boolean

Does this driver support compressing data?

Type

boolean

$canDecompress

$canDecompress : boolean

Does this driver support decompressing data?

Type

boolean

$_logger

$_logger : \Horde_Log_Logger

Logger

Type

\Horde_Log_Logger

$_files

$_files : array

Collection of files contained in the TNEF data.

Type

array — of Horde_Compress_Tnef_Object objects.

$_attachments

$_attachments : array

Collection of embedded TNEF attachments within the outer TNEF file.

Type

array — of Horde_Compress_Tnef objects.

$_currentObject

$_currentObject : \Horde_Compress_Tnef_Object

The TNEF object currently being decoded.

Type

\Horde_Compress_Tnef_Object

Methods

__construct()

__construct(array  $options = array()) 

Constructor.

Parameters

array $options

Additional options for the compressor backend.

compress()

compress(mixed  $data, array  $params = array()) : mixed

Compresses the data.

Parameters

mixed $data

The data to compress.

array $params

An array of arguments needed to compress the data.

Throws

\Horde_Compress_Exception

Returns

mixed —

The compressed data.

compressDirectory()

compressDirectory(string  $directory, array  $params = array()) : mixed

Compresses a directory.

Parameters

string $directory

The directory to recursively compress.

array $params

An array of arguments needed to compress the data.

Throws

\Horde_Compress_Exception

Returns

mixed —

The compressed data.

decompress()

decompress(mixed  $data, array  $params = array()) : array

Decompress the TNEF data. For BC reasons we can only return a numerically indexed array of object data. For more detailed information, use self::getFiles(), self::getAttachements(), and self::getMsgInfo().

Parameters

mixed $data

The data to decompress.

array $params

An array of arguments needed to decompress the data.

Throws

\Horde_Compress_Exception

Returns

array —

The decompressed data.

getFiles()

getFiles() : array

Return the collection of files in the TNEF data.

Returns

array —

@see self::$_files

getAttachments()

getAttachments() : array

Return the collection of embedded attachments.

Returns

array —

@see self::$_attachments

getMsgInfo()

getMsgInfo() : array

Return the message information data.

Returns

array —

@see self::$_msgInfo

setCurrentObject()

setCurrentObject(\Horde_Compress_Tnef_Object  $object) 

Sets the current object being decompressed.

Parameters

\Horde_Compress_Tnef_Object $object

_extractMapiAttributes()

_extractMapiAttributes(string  $data) 

Extract a set of encapsulated MAPI properties. Normally either embedded in an attachment structure, or an idMessageProperty structure.

Parameters

string $data

The data string.

_decodeAttachment()

_decodeAttachment(  $data) : \[type]

Decodes all LVL_ATTACHMENT data. Attachment data MUST be at the end of TNEF stream. First LVL_ATTACHMENT MUST be ARENDDATA (attAttachRendData).

From MS-OXTNEF: ; An attachment is determined/delimited by attAttachRendData, followed by ; other encoded attributes, if any, and ending with attAttachment ; if there are any encoded properties. AttachData = AttachRendData [*AttachAttribute] [AttachProps] AttachRendData = attrLevelAttachment idAttachRendData Length Data Checksum AttachAttribute = attrLevelAttachment idAttachAttr Length Data Checksum AttachProps = attrLevelAttachment idAttachment Length Data Checksum

Parameters

$data

Returns

\[type] —

[description]

_decodeMessageProperty()

_decodeMessageProperty(  $data) : \[type]

Decodes TNEF attributes.

Parameters

$data

Returns

\[type] —

[description]

_decodeAttribute()

_decodeAttribute(  $data) 

Decode a single attribute.

Parameters

$data

_getx()

_getx(  $data, integer  $bytes) : \@todo

Pop specified number of bytes from the buffer.

Parameters

$data
integer $bytes

How many bytes to retrieve.

Returns

\@todo —

these also need to exist in the objects. Need to refactor this away by adding a data/stream object with getx/geti methods with the data hanled internally.

_geti()

_geti(  $data, integer  $bits) : \TODO

Pop specified number of bits from the buffer

Parameters

$data
integer $bits

How many bits to retrieve.

Returns

\TODO

_toNamespaceGUID()

_toNamespaceGUID(  $value) 

Parameters

$value