CHANGELOG | ●●●●● patch | view | raw | blame | history | |
config/main.inc.php.dist | ●●●●● patch | view | raw | blame | history | |
program/include/main.inc | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_imap.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/compose.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/show.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/viewsource.inc | ●●●●● patch | view | raw | blame | history |
CHANGELOG
@@ -1,6 +1,11 @@ CHANGELOG RoundCube Webmail --------------------------- 2008/03/21 (thomasb) ---------- - Add configurable default charset for message decoding 2008/02/28 (thomasb) ---------- - Fix folder adding/renaming inspired by #1484800 config/main.inc.php.dist
@@ -180,6 +180,9 @@ // 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) $rcmail_config['mdn_requests'] = 0; // Use this as charset as fallback for message decoding $rcmail_config['default_charset'] = 'ISO-8859-1'; // Make use of the built-in spell checker. It is based on GoogieSpell. // Since Google only accepts connections over https your PHP installatation // requires to be compiled with Open SSL support program/include/main.inc
@@ -290,6 +290,9 @@ function rcmail_set_imap_prop() { global $CONFIG, $IMAP; if (!empty($CONFIG['default_charset'])) $IMAP->set_charset($CONFIG['default_charset']); // set root dir from config if (!empty($CONFIG['imap_root'])) program/include/rcube_imap.inc
@@ -51,6 +51,7 @@ var $sort_order = 'DESC'; var $delimiter = NULL; var $caching_enabled = FALSE; var $default_charset = 'ISO-8859-1'; var $default_folders = array('INBOX'); var $default_folders_lc = array('inbox'); var $cache = array(); @@ -200,6 +201,20 @@ if (empty($this->delimiter)) $this->get_hierarchy_delimiter(); } /** * Set default message charset * * This will be used for message decoding if a charset specification is not available * * @param string Charset string * @access public */ function set_charset($cs) { $this->default_charset = $ch; } @@ -1146,7 +1161,7 @@ // normalize filename property if ($filename_mime = $struct->d_parameters['filename'] ? $struct->d_parameters['filename'] : $struct->ctype_parameters['name']) $struct->filename = $this->decode_mime_string($filename_mime); $struct->filename = rcube_imap::decode_mime_string($filename_mime, $this->default_charset); else if ($filename_encoded = $struct->d_parameters['filename*'] ? $struct->d_parameters['filename*'] : $struct->ctype_parameters['name*']) { // decode filename according to RFC 2231, Section 4 @@ -1154,7 +1169,7 @@ $struct->filename = rcube_charset_convert(urldecode($filename_urlencoded), $filename_charset); } else if (!empty($struct->headers['content-description'])) $struct->filename = $this->decode_mime_string($struct->headers['content-description']); $struct->filename = rcube_imap::decode_mime_string($struct->headers['content-description'], $this->default_charset); return $struct; } @@ -1241,9 +1256,9 @@ // convert charset (if text or message part) if ($o_part->ctype_primary=='text' || $o_part->ctype_primary=='message') { // assume ISO-8859-1 if no charset specified // assume default if no charset specified if (empty($o_part->charset)) $o_part->charset = 'ISO-8859-1'; $o_part->charset = $this->default_charset; $body = rcube_charset_convert($body, $o_part->charset); } @@ -2297,7 +2312,7 @@ */ function decode_header($input, $remove_quotes=FALSE) { $str = $this->decode_mime_string((string)$input); $str = rcube_imap::decode_mime_string((string)$input, $this->default_charset); if ($str{0}=='"' && $remove_quotes) $str = str_replace('"', '', $str); @@ -2414,7 +2429,7 @@ return rcube_charset_convert($body, $ctype_param['charset']); // defaults to what is specified in the class header return rcube_charset_convert($body, 'ISO-8859-1'); return rcube_charset_convert($body, $this->default_charset); } program/steps/mail/compose.inc
@@ -90,7 +90,11 @@ // similar as in program/steps/mail/show.inc $MESSAGE = array('UID' => $msg_uid); $MESSAGE['headers'] = &$IMAP->get_headers($msg_uid); $MESSAGE['structure'] = &$IMAP->get_structure($msg_uid); $MESSAGE['structure'] = &$IMAP->get_structure($msg_uid); if (!empty($MESSAGE['headers']->charset)) $IMAP->set_charset($MESSAGE['headers']->charset); $MESSAGE['subject'] = $IMAP->decode_header($MESSAGE['headers']->subject); $MESSAGE['parts'] = $IMAP->get_mime_numbers($MESSAGE['structure']); program/steps/mail/show.inc
@@ -30,6 +30,10 @@ $MESSAGE = array('UID' => get_input_value('_uid', RCUBE_INPUT_GET)); $MESSAGE['headers'] = $IMAP->get_headers($MESSAGE['UID']); // set message charset as default if (!empty($MESSAGE['headers']->charset)) $IMAP->set_charset($MESSAGE['headers']->charset); // go back to list if message not found (wrong UID) if (!$MESSAGE['headers']) { program/steps/mail/viewsource.inc
@@ -5,7 +5,7 @@ | program/steps/mail/viewsource.inc | | | | This file is part of the RoundCube Webmail client | | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland | | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -22,19 +22,21 @@ // similar code as in program/steps/mail/get.inc if ($uid = get_input_value('_uid', RCUBE_INPUT_GET)) { header('Content-Type: text/plain'); //@ob_end_clean(); { $headers = $IMAP->get_headers($uid); $charset = $headers->charset ? $headers->charset : $IMAP->default_charset; header("Content-Type: text/plain; charset={$charset}"); $IMAP->print_raw_body($uid); } } else { raise_error(array('code' => 500, 'type' => 'php', 'message' => 'Message UID '.$uid.' not found'), TRUE, TRUE); } { raise_error(array( 'code' => 500, 'type' => 'php', 'message' => 'Message UID '.$uid.' not found'), true, true); } exit; ?>