From 323fa20bc89edcd683bef1a170445f681305fc5c Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 23 Mar 2016 11:54:31 -0400
Subject: [PATCH] Message/rfc822 attachment preview (#5054)

---
 program/steps/mail/headers.inc |   32 +++++++++++++++++++-------------
 1 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/program/steps/mail/headers.inc b/program/steps/mail/headers.inc
index 5d071cc..174a5e8 100644
--- a/program/steps/mail/headers.inc
+++ b/program/steps/mail/headers.inc
@@ -1,11 +1,15 @@
 <?php
-/*
+
+/**
  +-----------------------------------------------------------------------+
  | program/steps/mail/headers.inc                                        |
  |                                                                       |
- | This file is part of the RoundCube Webmail client                     |
- | Copyright (C) 2005-2007, RoundCube Dev. - Switzerland                 |
- | Licensed under the GNU GPL                                            |
+ | This file is part of the Roundcube Webmail client                     |
+ | Copyright (C) 2005-2016, The Roundcube Dev Team                       |
+ |                                                                       |
+ | Licensed under the GNU General Public License version 3 or            |
+ | any later version with exceptions for skins & plugins.                |
+ | See the README file for a full license statement.                     |
  |                                                                       |
  | PURPOSE:                                                              |
  |   Fetch message headers in raw format for display                     |
@@ -13,17 +17,21 @@
  +-----------------------------------------------------------------------+
  | Author: Aleksander Machniak <alec@alec.pl>                            |
  +-----------------------------------------------------------------------+
-
- $Id$
-
 */
 
-if ($uid = get_input_value('_uid', RCUBE_INPUT_POST))
-{
-    $source = $IMAP->get_raw_headers($uid);
+if ($uid = rcube_utils::get_input_value('_uid', rcube_utils::INPUT_POST)) {
+    if ($pos = strpos($uid, '.')) {
+        $message = new rcube_message($uid);
+        $source  = $message->get_part_content(substr($uid, $pos + 1));
+        $source  = substr($source, 0, strpos($source, "\r\n\r\n"));
+    }
+    else {
+        $source = $RCMAIL->storage->get_raw_headers($uid);
+    }
 
     if ($source !== false) {
-        $source = htmlspecialchars(trim($source));
+        $source = trim(rcube_charset::clean($source));
+        $source = htmlspecialchars($source);
         $source = preg_replace(
             array(
                 '/\n[\t\s]+/',
@@ -46,5 +54,3 @@
 }
 
 exit;
-
-

--
Gitblit v1.9.1