Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117752019
rcube_message_header.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
6 KB
Referenced Files
None
Subscribers
None
rcube_message_header.php
View Options
<?php
/**
+-----------------------------------------------------------------------+
| program/include/rcube_message_header.php |
| |
| This file is part of the Roundcube Webmail client |
| Copyright (C) 2005-2012, The Roundcube Dev Team |
| Copyright (C) 2011-2012, Kolab Systems AG |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
| PURPOSE: |
| E-mail message headers representation |
| |
+-----------------------------------------------------------------------+
| Author: Aleksander Machniak <alec@alec.pl> |
+-----------------------------------------------------------------------+
*/
/**
* Struct representing an e-mail message header
*
* @package Mail
* @author Aleksander Machniak <alec@alec.pl>
*/
class
rcube_message_header
{
/**
* Message sequence number
*
* @var int
*/
public
$id
;
/**
* Message unique identifier
*
* @var int
*/
public
$uid
;
/**
* Message subject
*
* @var string
*/
public
$subject
;
/**
* Message sender (From)
*
* @var string
*/
public
$from
;
/**
* Message recipient (To)
*
* @var string
*/
public
$to
;
/**
* Message additional recipients (Cc)
*
* @var string
*/
public
$cc
;
/**
* Message Reply-To header
*
* @var string
*/
public
$replyto
;
/**
* Message In-Reply-To header
*
* @var string
*/
public
$in_reply_to
;
/**
* Message date (Date)
*
* @var string
*/
public
$date
;
/**
* Message identifier (Message-ID)
*
* @var string
*/
public
$messageID
;
/**
* Message size
*
* @var int
*/
public
$size
;
/**
* Message encoding
*
* @var string
*/
public
$encoding
;
/**
* Message charset
*
* @var string
*/
public
$charset
;
/**
* Message Content-type
*
* @var string
*/
public
$ctype
;
/**
* Message timestamp (based on message date)
*
* @var int
*/
public
$timestamp
;
/**
* IMAP bodystructure string
*
* @var string
*/
public
$bodystructure
;
/**
* IMAP internal date
*
* @var string
*/
public
$internaldate
;
/**
* Message References header
*
* @var string
*/
public
$references
;
/**
* Message priority (X-Priority)
*
* @var int
*/
public
$priority
;
/**
* Message receipt recipient
*
* @var string
*/
public
$mdn_to
;
/**
* Other message headers
*
* @var array
*/
public
$others
=
array
();
/**
* Message flags
*
* @var array
*/
public
$flags
=
array
();
// map header to rcube_message_header object property
private
$obj_headers
=
array
(
'date'
=>
'date'
,
'from'
=>
'from'
,
'to'
=>
'to'
,
'subject'
=>
'subject'
,
'reply-to'
=>
'replyto'
,
'cc'
=>
'cc'
,
'bcc'
=>
'bcc'
,
'content-transfer-encoding'
=>
'encoding'
,
'in-reply-to'
=>
'in_reply_to'
,
'content-type'
=>
'ctype'
,
'references'
=>
'references'
,
'return-receipt-to'
=>
'mdn_to'
,
'disposition-notification-to'
=>
'mdn_to'
,
'x-confirm-reading-to'
=>
'mdn_to'
,
'message-id'
=>
'messageID'
,
'x-priority'
=>
'priority'
,
);
/**
* Returns header value
*/
public
function
get
(
$name
,
$decode
=
true
)
{
$name
=
strtolower
(
$name
);
if
(
isset
(
$this
->
obj_headers
[
$name
]))
{
$value
=
$this
->{
$this
->
obj_headers
[
$name
]};
}
else
{
$value
=
$this
->
others
[
$name
];
}
return
$decode
?
rcube_mime
::
decode_header
(
$value
,
$this
->
charset
)
:
$value
;
}
/**
* Sets header value
*/
public
function
set
(
$name
,
$value
)
{
$name
=
strtolower
(
$name
);
if
(
isset
(
$this
->
obj_headers
[
$name
]))
{
$this
->{
$this
->
obj_headers
[
$name
]}
=
$value
;
}
else
{
$this
->
others
[
$name
]
=
$value
;
}
}
}
/**
* Class for sorting an array of rcube_message_header objects in a predetermined order.
*
* @package Mail
* @author Aleksander Machniak <alec@alec.pl>
*/
class
rcube_message_header_sorter
{
private
$uids
=
array
();
/**
* Set the predetermined sort order.
*
* @param array $index Numerically indexed array of IMAP UIDs
*/
function
set_index
(
$index
)
{
$index
=
array_flip
(
$index
);
$this
->
uids
=
$index
;
}
/**
* Sort the array of header objects
*
* @param array $headers Array of rcube_message_header objects indexed by UID
*/
function
sort_headers
(&
$headers
)
{
uksort
(
$headers
,
array
(
$this
,
"compare_uids"
));
}
/**
* Sort method called by uksort()
*
* @param int $a Array key (UID)
* @param int $b Array key (UID)
*/
function
compare_uids
(
$a
,
$b
)
{
// then find each sequence number in my ordered list
$posa
=
isset
(
$this
->
uids
[
$a
])
?
intval
(
$this
->
uids
[
$a
])
:
-
1
;
$posb
=
isset
(
$this
->
uids
[
$b
])
?
intval
(
$this
->
uids
[
$b
])
:
-
1
;
// return the relative position as the comparison value
return
$posa
-
$posb
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Apr 4, 3:41 AM (1 d, 13 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
b3/f1/52632376072f7d0c1447b6c8b59e
Default Alt Text
rcube_message_header.php (6 KB)
Attached To
Mode
R113 roundcubemail
Attached
Detach File
Event Timeline