/** * Sets a property with a specified value. * * @see setValue() */ public function setValue($key, $val, $identity = null) { switch ($key) { case 'alias_addr': case 'bcc_addr': case 'replyto_addr': case 'tieto_addr': if (is_string($val) && strpbrk($val, "\r\n") !== false) { $val = preg_split("/[\r\n]+/", $val); } /* Validate Reply-To, Alias, Tie-to, and BCC addresses. */ $val = IMP::parseAddressList($val, array('limit' => $val == 'replyto_addr' ? 1 : 0))->addresses; break; case IMP_Mailbox::MBOX_SENT: $GLOBALS['injector']->getInstance('IMP_Mailbox_SessionCache')->expire(IMP_Mailbox_SessionCache::CACHE_SPECIALMBOXES); $val = IMP_Mailbox::prefTo($val); break; } return parent::setValue($key, $val, $identity); }
/** * Sets a property with a specified value. * * @see setValue() */ public function setValue($key, $val, $identity = null) { switch ($key) { case 'alias_addr': case 'bcc_addr': case 'replyto_addr': case 'tieto_addr': if (is_string($val) && strpbrk($val, "\r\n") !== false) { $val = preg_split("/[\r\n]+/", $val); } /* Validate Reply-To, Alias, Tie-to, and BCC addresses. */ $ob = IMP::parseAddressList($val, array('limit' => $val == 'replyto_addr' ? 1 : 0)); foreach ($ob as $address) { try { IMP::parseAddressList($address, array('validate' => true)); } catch (Horde_Mail_Exception $e) { throw new Horde_Prefs_Exception(sprintf(_("\"%s\" is not a valid email address.", strval($address)))); } } $val = $ob->addresses; break; case IMP_Mailbox::MBOX_SENT: $GLOBALS['injector']->getInstance('IMP_Mailbox_SessionCache')->expire(IMP_Mailbox_SessionCache::CACHE_SPECIALMBOXES); $val = IMP_Mailbox::prefTo($val); break; } return parent::setValue($key, $val, $identity); }