summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG7
-rw-r--r--config/main.inc.php.dist6
-rw-r--r--program/include/rcube_imap.inc12
-rw-r--r--program/include/rcube_shared.inc10
-rw-r--r--program/localization/index.inc5
-rw-r--r--program/steps/mail/func.inc6
-rw-r--r--program/steps/mail/get.inc7
-rw-r--r--program/steps/mail/move_del.inc2
-rw-r--r--program/steps/mail/sendmail.inc24
-rw-r--r--skins/default/mail.css3
10 files changed, 65 insertions, 17 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 6e33704d6..ae7631f28 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -60,7 +60,7 @@ CHANGELOG RoundCube Webmail
- Display folder names with special chars correctly (Bug #1330157)
-2005/11/13
+2005/11/18
----------
- Added Finnish, Romanian, Polish, Czech, British, Norwegian, Greek, Russian and Chinese translation
- Get IMAP server capabilities in array
@@ -82,3 +82,8 @@ CHANGELOG RoundCube Webmail
- Added keep-alive signal every minute
- Make logs dir configurable
- Added support for SMTPS
+- Decode attachment file names
+- Make delimiter for message headers configurable
+- Add generic footer to sent messages
+
+
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 2220a57ee..6a0ada4c5 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -110,6 +110,12 @@ $rcmail_config['message_sort_col'] = 'date';
// default sort order
$rcmail_config['message_sort_order'] = 'DESC';
+// path to a text file which will be added to each sent message
+// paths are relative to the RoundCube root folder
+$rcmail_config['generic_message_footer'] = '';
+
+// this string is used as a delimiter for message headers when sending
+$rcmail_config['mail_header_delimiter'] = "\r\n";
/***** these settings can be overwritten by user's preferences *****/
diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc
index 44ef24830..2237b38f3 100644
--- a/program/include/rcube_imap.inc
+++ b/program/include/rcube_imap.inc
@@ -988,6 +988,12 @@ class rcube_imap
function decode_header($input)
{
+ return $this->decode_mime_string($input);
+ }
+
+
+ function decode_mime_string($input)
+ {
$out = '';
$pos = strpos($input, '=?');
@@ -1002,8 +1008,8 @@ class rcube_imap
$encstr = substr($input, $pos+2, ($end_pos-$pos-2));
$rest = substr($input, $end_pos+2);
- $out .= $this->decode_mime_string($encstr);
- $out .= $this->decode_header($rest);
+ $out .= rcube_imap::_decode_mime_string_part($encstr);
+ $out .= rcube_imap::decode_mime_string($rest);
return $out;
}
@@ -1012,7 +1018,7 @@ class rcube_imap
}
- function decode_mime_string($str)
+ function _decode_mime_string_part($str)
{
$a = explode('?', $str);
$count = count($a);
diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc
index 8d26d56c4..400e345c0 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/rcube_shared.inc
@@ -1208,8 +1208,14 @@ function rep_specialchars_output($str, $enctype='', $mode='', $newlines=TRUE)
{
if (!$html_encode_arr)
{
- $html_encode_arr = $CHARSET=='ISO-8859-1' ? get_html_translation_table(HTML_ENTITIES) : get_html_translation_table(HTML_SPECIALCHARS);
- $html_encode_arr[chr(128)] = '€';
+ if ($CHARSET=='ISO-8859-1')
+ {
+ $html_encode_arr = get_html_translation_table(HTML_ENTITIES);
+ $html_encode_arr[chr(128)] = '€';
+ }
+ else
+ $html_encode_arr = get_html_translation_table(HTML_SPECIALCHARS);
+
unset($html_encode_arr['?']);
unset($html_encode_arr['&']);
}
diff --git a/program/localization/index.inc b/program/localization/index.inc
index a0c6671c0..3386ebd68 100644
--- a/program/localization/index.inc
+++ b/program/localization/index.inc
@@ -37,7 +37,7 @@
'el' => 'Greek',
'hu' => 'Hungarian',
'it' => 'Italiano',
- 'jp' => 'Japanese',
+ 'ja' => 'Japanese',
'kr' => 'Korean',
'lv' => 'Latvian',
'nl' => 'Nederlands',
@@ -63,7 +63,8 @@ $rcube_charsets = array(
'lv' => 'ISO-8859-2',
'pl' => 'ISO-8859-2',
'el' => 'ISO-8859-7',
- 'tw' => 'BIG5'
+ 'tw' => 'BIG5',
+ 'ja' => 'UTF-8'
);
?> \ No newline at end of file
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 4d80c851e..ca72f7437 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -797,13 +797,13 @@ function rcmail_parse_message($structure, $arg=array(), $recursive=FALSE)
(empty($mail_part->disposition) && ($mail_part->d_parameters['filename'] || $mail_part->d_parameters['name'])))
{
if ($message_ctype_secondary=='related' && $mail_part->headers['content-id'])
- $sa_inline_objects[] = array('filename' => $mail_part->d_parameters['filename'],
+ $sa_inline_objects[] = array('filename' => rcube_imap::decode_mime_string($mail_part->d_parameters['filename']),
'mimetype' => strtolower("$primary_type/$secondary_type"),
'part_id' => $mail_part->mime_id,
'content_id' => preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']));
else if ($mail_part->d_parameters['filename'])
- $a_attachments[] = array('filename' => $mail_part->d_parameters['filename'],
+ $a_attachments[] = array('filename' => rcube_imap::decode_mime_string($mail_part->d_parameters['filename']),
'encoding' => strtolower($mail_part->headers['content-transfer-encoding']),
'mimetype' => strtolower("$primary_type/$secondary_type"),
'part_id' => $mail_part->mime_id,
@@ -811,7 +811,7 @@ function rcmail_parse_message($structure, $arg=array(), $recursive=FALSE)
'content' => $mail_part->body */);
else if ($mail_part->ctype_parameters['name'])
- $a_attachments[] = array('filename' => $mail_part->ctype_parameters['name'],
+ $a_attachments[] = array('filename' => rcube_imap::decode_mime_string($mail_part->ctype_parameters['name']),
'encoding' => strtolower($mail_part->headers['content-transfer-encoding']),
'mimetype' => strtolower("$primary_type/$secondary_type"),
'part_id' => $mail_part->mime_id,
diff --git a/program/steps/mail/get.inc b/program/steps/mail/get.inc
index 9a86177aa..fc6d99d07 100644
--- a/program/steps/mail/get.inc
+++ b/program/steps/mail/get.inc
@@ -99,6 +99,13 @@ else if ($_GET['_part'])
header(sprintf('Content-Length: %d', strlen($cont)));
+ // We need to set the following headers to make downloads work using IE in HTTPS mode.
+ if (isset($_SERVER['HTTPS']))
+ {
+ header('Pragma: ');
+ header('Cache-Control: ');
+ }
+
// deliver part content
echo $cont;
exit;
diff --git a/program/steps/mail/move_del.inc b/program/steps/mail/move_del.inc
index 41b11d5d1..e3c7549b4 100644
--- a/program/steps/mail/move_del.inc
+++ b/program/steps/mail/move_del.inc
@@ -77,7 +77,7 @@ if ($_action=='moveto')
// add new rows from next page (if any)
if ($_GET['_from']!='show' && $pages>1 && $IMAP->list_page < $pages)
{
- $a_headers = $IMAP->list_headers($mbox);
+ $a_headers = $IMAP->list_headers($mbox, null, $_SESSION['sort_col'], $_SESSION['sort_order']);
$a_headers = array_slice($a_headers, -$count, $count);
$commands .= rcmail_js_message_list($a_headers);
}
diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc
index 4d7afb5ec..4531aa311 100644
--- a/program/steps/mail/sendmail.inc
+++ b/program/steps/mail/sendmail.inc
@@ -137,8 +137,24 @@ if ($CONFIG['useragent'])
$headers['User-Agent'] = $CONFIG['useragent'];
+// append generic footer to all messages
+if (!empty($CONFIG['generic_message_footer']))
+ {
+ $file = realpath($CONFIG['generic_message_footer']);
+ if($fp = fopen($file, 'r'))
+ {
+ $content = fread($fp, filesize($file));
+ fclose($fp);
+ $_POST['_message'] .= "\r\n" . $content;
+ }
+ }
+
+
+// use the configured delimiter for headers
+$header_delm = $rcmail_config['mail_header_delimiter'] ? $rcmail_config['mail_header_delimiter'] : "\r\n";
+
// create PEAR::Mail_mime instance
-$MAIL_MIME = new Mail_mime("\n");
+$MAIL_MIME = new Mail_mime($header_delm);
$MAIL_MIME->setTXTBody(stripslashes($_POST['_message']), FALSE, TRUE);
//$MAIL_MIME->setTXTBody(wordwrap(stripslashes($_POST['_message'])), FALSE, TRUE);
@@ -158,9 +174,9 @@ if (is_array($_FILES['_attachments']['tmp_name']))
$message_param = array('text_encoding' => '7bit',
'html_encoding' => 'quoted-printable',
'head_encoding' => 'quoted-printable',
- 'head_charset' => 'ISO-8859-1',
- 'html_charset' => 'ISO-8859-1',
- 'text_charset' => 'ISO-8859-1');
+ 'head_charset' => $CHARSET,
+ 'html_charset' => $CHARSET,
+ 'text_charset' => $CHARSET);
// compose message body and get headers
$msg_body = $MAIL_MIME->get($message_param);
diff --git a/skins/default/mail.css b/skins/default/mail.css
index 5a362c197..f429407dd 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -339,8 +339,9 @@ body.messagelist
padding: 2px;
padding-right: 4px;
font-size: 11px;
- overflow: hidden;
+ overflow: hidden;
white-space: nowrap;
+ text-overflow: ellipsis;
border-bottom: 1px solid #EBEBEB;
cursor: pointer;
}