Thomas Bruederli
2016-01-16 699af1e5206ed9114322adaa3c25c1c969640a53
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                     |
f5d2ee 8  | Copyright (C) 2005-2013, The Roundcube Dev Team                       |
7fe381 9  |                                                                       |
T 10  | Licensed under the GNU General Public License version 3 or            |
11  | any later version with exceptions for skins & plugins.                |
12  | See the README file for a full license statement.                     |
4e17e6 13  |                                                                       |
T 14  | PURPOSE:                                                              |
15  |   Display a mail message similar as a usual mail application does     |
16  |                                                                       |
17  +-----------------------------------------------------------------------+
18  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
19  +-----------------------------------------------------------------------+
20 */
21
699af1 22 if (!empty($_GET['_save'])) {
TB 23     $RCMAIL->request_security_check(rcube_utils::INPUT_GET);
24 }
25
d51c93 26 ob_end_clean();
4e17e6 27
T 28 // similar code as in program/steps/mail/get.inc
f5d2ee 29 if ($uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_GET)) {
AM 30     $headers = $RCMAIL->storage->get_message_headers($uid);
31     $charset = $headers->charset ? $headers->charset : $RCMAIL->config->get('default_charset');
49dfb0 32
f5d2ee 33     header("Content-Type: text/plain; charset={$charset}");
799359 34
f5d2ee 35     if (!empty($_GET['_save'])) {
AM 36         $subject  = rcube_mime::decode_header($headers->subject, $headers->charset);
37         $filename = ($subject ? $subject : $RCMAIL->config->get('product_name', 'email')) . '.eml';
38         $browser  = $RCMAIL->output->browser;
7ef05f 39
5515db 40         if ($browser->ie)
f5d2ee 41             $filename = rawurlencode($filename);
AM 42         else
43             $filename = addcslashes($filename, '"');
799359 44
f5d2ee 45         header("Content-Length: {$headers->size}");
AM 46         header("Content-Disposition: attachment; filename=\"$filename\"");
47     }
48
49     $RCMAIL->storage->print_raw_body($uid, empty($_GET['_save']));
17b5fb 50 }
f5d2ee 51 else {
AM 52     rcube::raise_error(array(
53             'code'    => 500,
54             'type'    => 'php',
55             'file'    => __FILE__,
56             'line'    => __LINE__,
57             'message' => "Message UID $uid not found"
58         ),
59         true, true);
17b5fb 60 }
4e17e6 61
T 62 exit;