alecpl
2012-01-05 1c4f23d6e58e12f93d8de2c3ae416df575e8ad85
commit | author | age
4e17e6 1 <?php
T 2
3 /*
4  +-----------------------------------------------------------------------+
5  | program/steps/mail/viewsource.inc                                     |
6  |                                                                       |
e019f2 7  | This file is part of the Roundcube Webmail client                     |
f5e7b3 8  | Copyright (C) 2005-2009, The Roundcube Dev Team                       |
30233b 9  | Licensed under the GNU GPL                                            |
4e17e6 10  |                                                                       |
T 11  | PURPOSE:                                                              |
12  |   Display a mail message similar as a usual mail application does     |
13  |                                                                       |
14  +-----------------------------------------------------------------------+
15  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
16  +-----------------------------------------------------------------------+
17
18  $Id$
19
20 */
21
d51c93 22 ob_end_clean();
4e17e6 23
T 24 // similar code as in program/steps/mail/get.inc
8d4bcd 25 if ($uid = get_input_value('_uid', RCUBE_INPUT_GET))
17b5fb 26 {
b6da0b 27   $headers = $RCMAIL->imap->get_headers($uid);
f52c93 28   $charset = $headers->charset ? $headers->charset : $CONFIG['default_charset'];
17b5fb 29   header("Content-Type: text/plain; charset={$charset}");
49dfb0 30
A 31   if (!empty($_GET['_save'])) {
1c4f23 32     $subject = rcube_mime::decode_header($headers->subject, $headers->charset);
A 33     $filename = ($subject ? $subject : $RCMAIL->config->get('product_name', 'email')) . '.eml';
799359 34     $browser = $RCMAIL->output->browser;
A 35
49dfb0 36     if ($browser->ie && $browser->ver < 7)
A 37       $filename = rawurlencode(abbreviate_string($filename, 55));
38     else if ($browser->ie)
39       $filename = rawurlencode($filename);
40     else
41       $filename = addcslashes($filename, '"');
7ef05f 42
A 43     header("Content-Length: {$headers->size}");
49dfb0 44     header("Content-Disposition: attachment; filename=\"$filename\"");
A 45   }
799359 46
b6da0b 47   $RCMAIL->imap->print_raw_body($uid);
17b5fb 48 }
4e17e6 49 else
17b5fb 50 {
T 51   raise_error(array(
52       'code' => 500,
53       'type' => 'php',
10eedb 54       'file' => __FILE__, 'line' => __LINE__,
17b5fb 55       'message' => 'Message UID '.$uid.' not found'),
10eedb 56     true, true);
17b5fb 57 }
4e17e6 58
T 59 exit;
b25dfd 60