/
Single.php
107 lines (100 loc) · 2.66 KB
/
Single.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
/**
* Copyright 2014 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Horde
* @copyright 2014 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Mime
*/
/**
* Interface representing a single named header element that can only appear
* once in a message part.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2014 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package Mime
* @since 2.5.0
*
* @property-read string $full_value Full header value.
* @property-read string $value Header value.
*/
class Horde_Mime_Headers_Element_Single
extends Horde_Mime_Headers_Element
{
/**
*/
public function __get($name)
{
switch ($name) {
case 'full_value':
case 'value':
return reset($this->_values);
}
return parent::__get($name);
}
/**
*/
public function __toString()
{
return $this->value;
}
/**
*/
protected function _setValue($value)
{
if ($value instanceof Horde_Mime_Headers_Element) {
$value = $value->value;
} elseif (is_array($value)) {
$value = reset($value);
}
$this->_values = array(Horde_Mime::decode($value));
}
/**
*/
public static function getHandles()
{
return array(
// Mail: RFC 3798
'disposition-notification-options',
'original-recipient',
// MIME: RFC 1864
'content-md5',
// MIME: RFC 2045
'content-transfer-encoding',
'content-id',
'content-description',
// MIME: RFC 2110
'content-base',
// MIME: RFC 2424
'content-duration',
// MIME: RFC 2557
'content-location',
// MIME: RFC 2912 [3]
'content-features',
// MIME: RFC 3282
'content-language',
// MIME: RFC 3297
'content-alternative',
// Lists: RFC 2369
'list-help',
'list-unsubscribe',
'list-subscribe',
'list-owner',
'list-post',
'list-archive',
// Lists: RFC 2919
'list-id',
// Importance: See, e.g., RFC 4356 [2.1.3.3.1]
'importance',
// OTHER: X-Priority
// See: http://kb.mozillazine.org/Emulate_Microsoft_email_clients
'x-priority'
);
}
}