X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=plugins%2Fmessage_details%2Fmessage_details_bottom.php;h=a5980ebdb469498a642c28e434365e9fc2ef7f63;hp=b6d897c2f9c451f605ffccb1d2d9a8ad1827b39f;hb=9ae70b623b5bda18ee4b60d9481d49d057b2f508;hpb=4588f43defbad726d307820e8126cf8cabc886ca
diff --git a/plugins/message_details/message_details_bottom.php b/plugins/message_details/message_details_bottom.php
index b6d897c2..a5980ebd 100644
--- a/plugins/message_details/message_details_bottom.php
+++ b/plugins/message_details/message_details_bottom.php
@@ -6,13 +6,14 @@
* Plugin to view the RFC822 raw message output and the bodystructure of a message
*
* @author Marc Groot Koerkamp
- * @copyright © 2002 Marc Groot Koerkamp, The Netherlands
- * @copyright © 2002-2006 The SquirrelMail Project Team
+ * @copyright 2002 Marc Groot Koerkamp, The Netherlands
+ * @copyright 2002-2014 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package plugins
* @subpackage message_details
*/
+//FIXME: this file uses HTML extensively and eventually needs to be "templatized" (don't echo HTML directly)
/**
* Include the SquirrelMail initialization file.
@@ -32,13 +33,16 @@ global $msgd_8bit_in_hex;
$msgd_8bit_in_hex=false;
if (!empty($md_action)) {
- sqgetGlobalVar('passed_id', $passed_id, SQ_GET);
+ sqgetGlobalVar('passed_id', $passed_id, SQ_GET, NULL, SQ_TYPE_BIGINT);
+ if (!sqgetGlobalVar('passed_ent_id', $passed_ent_id, SQ_GET))
+ $passed_ent_id = 0;
sqgetGlobalVar('mailbox', $mailbox, SQ_GET);
/*
- * add third function argument, if you want to see
+ * change $unformatted to TRUE if you want to see
* message source without formating
*/
- echo get_message_details($mailbox, $passed_id);
+ $unformatted = FALSE;
+ echo get_message_details($mailbox, $passed_id, $passed_ent_id, $unformatted);
}
@@ -100,22 +104,25 @@ function CalcEntity($entString, $direction) {
* Returns actual message details
* @param string $mailbox
* @param string $passed_id
+ * @param string $passed_ent_id
* @param boolean $stripHTML If TRUE, only plain text is returned,
* default is FALSE, wherein output contains
* pretty-HTMLification of message body
* @return string The formatted message details
* @access public
*/
-function get_message_details($mailbox, $passed_id, $stripHTML=FALSE) {
- global $imapServerAddress, $imapPort, $color,$msgd_8bit_in_hex;
+function get_message_details($mailbox, $passed_id, $passed_ent_id=0, $stripHTML=FALSE) {
+ global $imapServerAddress, $imapPort, $imapSslOptions,
+ $color,$msgd_8bit_in_hex, $username;
$returnValue = '';
- sqgetGlobalVar('username', $username, SQ_SESSION);
-
- $imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, 0);
+ $imapConnection = sqimap_login($username, false, $imapServerAddress, $imapPort, 0, $imapSslOptions);
$read = sqimap_mailbox_select($imapConnection, $mailbox);
- $body = sqimap_run_command($imapConnection, "FETCH $passed_id RFC822",true, $response, $readmessage, TRUE);
+ if (!empty($passed_ent_id))
+ $body = sqimap_run_command($imapConnection, "FETCH $passed_id BODY[$passed_ent_id]",true, $response, $readmessage, TRUE);
+ else
+ $body = sqimap_run_command($imapConnection, "FETCH $passed_id RFC822",true, $response, $readmessage, TRUE);
$message_body = '';
$header = false;
$mimepart = false;
@@ -124,7 +131,7 @@ function get_message_details($mailbox, $passed_id, $stripHTML=FALSE) {
$messageheaderstart=false;
$boundaries = array();
$entities = array();
- session_unregister("entities");
+ sqsession_unregister("entities");
$pre = '';
$end = '';
$entStr = '';
@@ -254,7 +261,7 @@ function get_message_details($mailbox, $passed_id, $stripHTML=FALSE) {
$entities["$entStr"]['contenttype']=$reg[2].'/'.$reg[3];
}
} else if (!$nameset && preg_match("/^.*(name=\s*)\"(.*)\".*/i",$line,$reg)) {
- $name = htmlspecialchars($reg[2]);
+ $name = sm_encode_html_special_chars($reg[2]);
$content[$content_indx]['name'] = decodeHeader($name);
$nameset = true;
if (isset($entities["$entStr"])) {
@@ -279,7 +286,7 @@ function get_message_details($mailbox, $passed_id, $stripHTML=FALSE) {
if ($stripHTML) {
$message_body .= $line . "\r\n";
} else {
- $line = htmlspecialchars($line);
+ $line = sm_encode_html_special_chars($line);
if ($msgd_8bit_in_hex) $line = msgd_convert_to_hex($line);
$message_body .= "$pre"."$line"."$end"."\r\n";
}
@@ -289,7 +296,6 @@ function get_message_details($mailbox, $passed_id, $stripHTML=FALSE) {
$xtra = <<
-
-
+-->
ECHO;
@@ -368,4 +373,3 @@ ECHO;
}
return $returnValue;
}
-?>
\ No newline at end of file