From 17b5fb797f4bc142fee8cd72ade3890b4dfdbd82 Mon Sep 17 00:00:00 2001 From: thomascube Date: Fri, 21 Mar 2008 11:45:46 +0000 Subject: Add configurable default charset for message decoding --- program/steps/mail/compose.inc | 6 +++++- program/steps/mail/show.inc | 4 ++++ program/steps/mail/viewsource.inc | 26 ++++++++++++++------------ 3 files changed, 23 insertions(+), 13 deletions(-) (limited to 'program/steps/mail') diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc index 71d2197d8..6b08d85e4 100644 --- a/program/steps/mail/compose.inc +++ b/program/steps/mail/compose.inc @@ -90,7 +90,11 @@ if (!empty($msg_uid)) // 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']); diff --git a/program/steps/mail/show.inc b/program/steps/mail/show.inc index 5cd5e8360..27d26603f 100644 --- a/program/steps/mail/show.inc +++ b/program/steps/mail/show.inc @@ -30,6 +30,10 @@ if ($_GET['_uid']) $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']) { diff --git a/program/steps/mail/viewsource.inc b/program/steps/mail/viewsource.inc index c88b165b6..7c32b89ca 100644 --- a/program/steps/mail/viewsource.inc +++ b/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; ?> -- cgit v1.2.3