public function __construct($data)
{
parent::__construct($data);
/* RFC 3501 allows any US-ASCII character, except null (\0), in
* mailbox data.
* RFC 6855 [3] institutes additional limitations on valid mailbox
* characters, to comply with RFC 5198 [2] (Net-Unicode Definition):
* "MUST NOT contain control characters (U+0000-U+001F and
* U+0080-U+009F), a delete character (U+007F), a line separator
* (U+2028), or a paragraph separator (U+2029)." */
if ($this->quoted() && preg_match('/[\\x00-\\x1f\\x7f\\x80-\\x9f\\x{2028}\\x{2029}]/u', strval($this))) {
throw new Horde_Imap_Client_Data_Format_Exception('Invalid character found in mailbox data.');
}
if ($this->literal()) {
$this->forceQuoted();
}
}