* It's clickable interface which operates on text scripts and communicates
* with server using managesieve protocol. Adds Filters tab in Settings.
*
- * @version 1.3
+ * @version 1.7
* @author Aleksander 'A.L.E.C' Machniak <alec@alec.pl>
*
* Configuration (see config.inc.php.dist):
// try to connect to managesieve server and to fetch the script
$this->sieve = new rcube_sieve($_SESSION['username'],
$this->rc->decrypt($_SESSION['password']),
- $this->rc->config->get('managesieve_host', 'localhost'),
+ str_replace('%h', $_SESSION['imap_host'], $this->rc->config->get('managesieve_host', 'localhost')),
$this->rc->config->get('managesieve_port', 2000),
$this->rc->config->get('managesieve_usetls', false),
$this->rc->config->get('managesieve_disabled_extensions'));
$a_folders = $this->rc->imap->list_mailboxes();
$delimiter = $this->rc->imap->get_hierarchy_delimiter();
+ // set mbox encoding
+ $mbox_encoding = $this->rc->config->get('managesieve_mbox_encoding', 'UTF7-IMAP');
+
if ($action['type'] == 'fileinto')
$mailbox = $action['target'];
else
if ($replace_delimiter = $this->rc->config->get('managesieve_replace_delimiter'))
$utf7folder = str_replace($delimiter, $replace_delimiter, $utf7folder);
+ // convert to Sieve implementation encoding
+ $utf7folder = $this->mbox_encode($utf7folder, $mbox_encoding);
+
if ($folder_class = rcmail_folder_classname($name))
$foldername = $this->gettext($folder_class);
else
private function check_email($email)
{
+ if (function_exists('check_email'));
+ return check_email($email);
+
// Check for invalid characters
if (preg_match('/[\x00-\x1F\x7F-\xFF]/', $email))
return false;
return false;
}
+ private function mbox_encode($text, $encoding)
+ {
+ return rcube_charset_convert($text, 'UTF7-IMAP', $encoding);
+ }
}
?>