X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=plugins%2Fmessage_details%2Fmessage_details_bottom.php;h=29c6d8fec280642f82a95ded926409ed181a4058;hb=e1728a7ada03ba597fc2f8a800773cb427a711ce;hp=b9a5e7b66b2367d61083d73b1a85b3acff6a9f0b;hpb=c157ce7e91d2dd9a219ddf8cb36a23ff9161c554;p=squirrelmail.git diff --git a/plugins/message_details/message_details_bottom.php b/plugins/message_details/message_details_bottom.php index b9a5e7b6..29c6d8fe 100644 --- a/plugins/message_details/message_details_bottom.php +++ b/plugins/message_details/message_details_bottom.php @@ -8,8 +8,11 @@ * Licensed under the GNU GPL. For full terms see the file COPYING. * * $Id$ + * @package plugins + * @subpackage message_details */ +/** @ignore */ define('SM_PATH','../../'); /* SquirrelMail required files. */ @@ -19,7 +22,7 @@ require_once(SM_PATH . 'functions/mime.php'); require_once(SM_PATH . 'config/config.php'); require_once(SM_PATH . 'functions/prefs.php'); -global $color, $uid_support; +global $color; sqgetGlobalVar('passed_id', $passed_id, SQ_GET); sqgetGlobalVar('mailbox', $mailbox, SQ_GET); @@ -36,24 +39,24 @@ function CalcEntity($entString, $direction) { } switch ($direction) { - case 0: - $pos = strrpos($entString,'.'); - if ($pos === false) { - $entString++; - $result= $entString; - } - else { - $level = substr($entString,0,$pos); - $sublevel = substr($entString,$pos+1); - $sublevel++; - $result = "$level".'.'."$sublevel"; - } - break; - case 1: - $result = "$entString".".0"; - break; - default: - break; + case 0: + $pos = strrpos($entString,'.'); + if ($pos === false) { + $entString++; + $result= $entString; + } + else { + $level = substr($entString,0,$pos); + $sublevel = substr($entString,$pos+1); + $sublevel++; + $result = "$level".'.'."$sublevel"; + } + break; + case 1: + $result = "$entString".".0"; + break; + default: + break; } return ($result); } @@ -70,7 +73,7 @@ function GetMimeProperties($header) { $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); $read = sqimap_mailbox_select($imapConnection, $mailbox); $start = gettimeofday(); -$body = sqimap_run_command($imapConnection, "FETCH $passed_id RFC822",true, $response, $readmessage, $uid_support); +$body = sqimap_run_command($imapConnection, "FETCH $passed_id RFC822",true, $response, $readmessage, TRUE); $message_body = ''; $header = false; $mimepart = false; @@ -93,159 +96,159 @@ $body[$count-1] = substr($body[$count-1], -1); for ($i=1; $i < $count; $i++) { $line = trim($body[$i]); if ($line == '') { - $pre = ''; - $end = ''; + $pre = ''; + $end = ''; if ($bnd_end) { - $header = true; - $mimepart = false; - } else if ($messageheader) { - if ($header) { - $header=false; - $end = "\n \n".''."\n \n".'
'."\n \n"; - } - $mimepart = -$header; - $bnd_end = false; - if ($messageheaderstart) { - $messageheaderstart=false; - } - } else if ($messageheaderstart) { - $messageheader= false; - } else { - if ($header) { - $pre = ''; - $end = "\n \n".'
'."\n \n".'
'."\n \n"; - } - $header = false; - $mimepart=true; - } - $contentset = false; - $nameset = false; + $header = true; + $mimepart = false; + } else if ($messageheader) { + if ($header) { + $header=false; + $end = "\n \n".'
'."\n \n".'
'."\n \n"; + } + $mimepart = -$header; + $bnd_end = false; + if ($messageheaderstart) { + $messageheaderstart=false; + } + } else if ($messageheaderstart) { + $messageheader= false; + } else { + if ($header) { + $pre = ''; + $end = "\n \n".'
'."\n \n".'
'."\n \n"; + } + $header = false; + $mimepart=true; + } + $contentset = false; + $nameset = false; } else { if (!$header && $messageheader) { - $messageheaderstart=true; - if ($pre != '') { - $pre = ''; - } - } - if (!$messageheader && !$header ) { - $mimepart=true; - } else { - $mimepart=false; - } - $pre = ''; - $end = ''; + $messageheaderstart=true; + if ($pre != '') { + $pre = ''; + $end = ''; + } + } + if (!$messageheader && !$header ) { + $mimepart=true; + } else { + $mimepart=false; + } + $pre = ''; + $end = ''; } if ( ( $header || $messageheader) && (preg_match("/^.*boundary=\"?(.+(?=\")|.+).*/i",$line,$reg)) ) { - $bnd = $reg[1]; - $bndreg = $bnd; - $bndreg = str_replace("\\","\\\\",$bndreg); - $bndreg = str_replace("?","\\?",$bndreg); - $bndreg = str_replace("+","\\+",$bndreg); - $bndreg = str_replace(".","\\.",$bndreg); - $bndreg = str_replace("/","\\/",$bndreg); - $bndreg = str_replace("-","\\-",$bndreg); - $bndreg = str_replace("(","\\(",$bndreg); - $bndreg = str_replace(")","\\)",$bndreg); + $bnd = $reg[1]; + $bndreg = $bnd; + $bndreg = str_replace("\\","\\\\",$bndreg); + $bndreg = str_replace("?","\\?",$bndreg); + $bndreg = str_replace("+","\\+",$bndreg); + $bndreg = str_replace(".","\\.",$bndreg); + $bndreg = str_replace("/","\\/",$bndreg); + $bndreg = str_replace("-","\\-",$bndreg); + $bndreg = str_replace("(","\\(",$bndreg); + $bndreg = str_replace(")","\\)",$bndreg); - $boundaries[] = array( 'bnd' => $bnd, 'bndreg' => $bndreg); - $messageheader = false; - $messageheaderstart=false; - $mimepart=false; - if ($entStr=='') { - $entStr='0'; - } else { - $entStr = CalcEntity("$entStr",1); - } + $boundaries[] = array( 'bnd' => $bnd, 'bndreg' => $bndreg); + $messageheader = false; + $messageheaderstart=false; + $mimepart=false; + if ($entStr=='') { + $entStr='0'; + } else { + $entStr = CalcEntity("$entStr",1); + } } if (($line != '' && $line{0} == '-' || $header) && isset($boundaries[0])) { $cnt=count($boundaries)-1; - $bnd = $boundaries[$cnt]['bnd']; - $bndreg = $boundaries[$cnt]['bndreg']; + $bnd = $boundaries[$cnt]['bnd']; + $bndreg = $boundaries[$cnt]['bndreg']; - $regstr = '/^--'."($bndreg)".".*".'/'; - if (preg_match($regstr,$line,$reg) ) { - $bndlen = strlen($reg[1]); - $bndend = false; + $regstr = '/^--'."($bndreg)".".*".'/'; + if (preg_match($regstr,$line,$reg) ) { + $bndlen = strlen($reg[1]); + $bndend = false; if (strlen($line) > ($bndlen + 3)) { - if ($line{$bndlen+2} == '-' && $line{$bndlen+3} == '-') - $bndend = true; - } - if ($bndend) { - $entStr = CalcEntity("$entStr",-1); - array_pop($boundaries); - $pre .= ''; - $header = true; - $mimepart = false; - $bnd_end = true; - $encoding = ''; - } else { - $header = true; - $bnd_end = false; - $entStr = CalcEntity("$entStr",0); - $content_indx++; - $content[$content_indx]=array(); - $content[$content_indx]['ent'] = '$entStr".''; - $pre .= "\n \n".'
'."\n \n".'
'."\n"; - $header = true; - $mimepart = false; - $encoding = ''; - } - } else { - if ($header) { - if (!$contentset && preg_match("/^.*(content-type:)\s*(\w+)\/(\w+).*/i",$line,$reg)) { - if (strtolower($reg[2]) == 'message' && strtolower($reg[3]) == 'rfc822') { - $messageheader = true; - } - $content[$content_indx]['type'] = "$reg[2]/$reg[3]"; - $contentset = true; - if ($reg[2] == 'image') { - $entities["$entStr"] = array(); - $entities["$entStr"]['entity'] = $entStr; - $entities["$entStr"]['contenttype']=$reg[2].'/'.$reg[3]; - } - } else if (!$nameset && preg_match("/^.*(name=\s*)\"(.*)\".*/i",$line,$reg)) { - $name = htmlspecialchars($reg[2]); - $content[$content_indx]['name'] = decodeHeader($name); - $nameset = true; - if (isset($entities["$entStr"])) { - $entities["$entStr"]['name'] = urlEncode($reg[2]); - } - } else if (preg_match("/^.*(content-transfer-encoding:)\s*(\w+-?(\w+)?).*/i",$line,$reg) ) { - $encoding = $reg[2]; - if (isset($entities["$entStr"])) { - $entities["$entStr"]['encoding']=$reg[2]; - } - $content[$content_indx]['encoding'] = $encoding; - $mimeentity = ''; - } + if ($line{$bndlen+2} == '-' && $line{$bndlen+3} == '-') + $bndend = true; + } + if ($bndend) { + $entStr = CalcEntity("$entStr",-1); + array_pop($boundaries); + $pre .= ''; + $end .= ''; + $header = true; + $mimepart = false; + $bnd_end = true; + $encoding = ''; + } else { + $header = true; + $bnd_end = false; + $entStr = CalcEntity("$entStr",0); + $content_indx++; + $content[$content_indx]=array(); + $content[$content_indx]['ent'] = '$entStr".''; + $pre .= "\n \n".'
'."\n \n".'
'; + $end .= ''."\n"; + $header = true; + $mimepart = false; + $encoding = ''; + } + } else { + if ($header) { + if (!$contentset && preg_match("/^.*(content-type:)\s*(\w+)\/(\w+).*/i",$line,$reg)) { + if (strtolower($reg[2]) == 'message' && strtolower($reg[3]) == 'rfc822') { + $messageheader = true; + } + $content[$content_indx]['type'] = "$reg[2]/$reg[3]"; + $contentset = true; + if ($reg[2] == 'image') { + $entities["$entStr"] = array(); + $entities["$entStr"]['entity'] = $entStr; + $entities["$entStr"]['contenttype']=$reg[2].'/'.$reg[3]; + } + } else if (!$nameset && preg_match("/^.*(name=\s*)\"(.*)\".*/i",$line,$reg)) { + $name = htmlspecialchars($reg[2]); + $content[$content_indx]['name'] = decodeHeader($name); + $nameset = true; + if (isset($entities["$entStr"])) { + $entities["$entStr"]['name'] = urlEncode($reg[2]); + } + } else if (preg_match("/^.*(content-transfer-encoding:)\s*(\w+-?(\w+)?).*/i",$line,$reg) ) { + $encoding = $reg[2]; + if (isset($entities["$entStr"])) { + $entities["$entStr"]['encoding']=$reg[2]; + } + $content[$content_indx]['encoding'] = $encoding; + $mimeentity = ''; + } - $pre .= ''; - //$mimepart=false; - } - } - } + $pre .= ''; + $end .= ''; + //$mimepart=false; + } + } + } /* if ($mimepart) { - if (isset($entities["$entStr"])) { - if (isset($encoding) && $encoding == 'base64') { - if (!isset( $entities["$entStr"]['content'])) $entities[$entStr]['content'] = ''; - $entities["$entStr"]['content'] .= $line; - } + if (isset($entities["$entStr"])) { + if (isset($encoding) && $encoding == 'base64') { + if (!isset( $entities["$entStr"]['content'])) $entities[$entStr]['content'] = ''; + $entities["$entStr"]['content'] .= $line; + } } - } + } */ $line = htmlspecialchars($line); - $message_body .= "$pre"."$line"."$end".'
'."\r\n"; + $message_body .= "$pre"."$line"."$end".'
'."\r\n"; } -//echo returnTime($start).'
'; +//echo returnTime($start).'
'; $xtra = << + + ECHO; @@ -270,8 +273,8 @@ displayHtmlHeader( _("Message Details"), $xtra, FALSE ); /* body */ echo "\n"; echo ''."\n"; -echo ''."\n"; -echo '
'."\n"; +echo ''."\n"; +echo '
'."\n"; //session_register("entities"); @@ -280,7 +283,7 @@ echo '
'."\n"; //foreach ($keys as $key) { // if (isset($entities[$key])) { // if ($entities[$key]['encoding'] == 'base64') { -// echo '
'; +// echo '
'; // } // } //} @@ -288,32 +291,31 @@ echo '
'."\n"; if (count($content) > 0) { echo '

Bodystructure

'."\n\n"; - echo ''. - ''. - ''. - ''. - ''. - ''. - - ''. - ''; + echo '
EntityContent-TypeNameEncoding
'. + ''. + ''. + ''. + ''. + ''. + ''. + ''; for ($i = 0; $i < count($content);$i++) { - echo ''."\n"; + echo ''."\n"; } - echo '
EntityContent-TypeNameEncoding
'; - echo $content[$i]['ent'].''; - if (isset($content[$i]['type'])) { - echo $content[$i]['type']; - } else echo 'TEXT/PLAIN'; - echo ''; - if (isset($content[$i]['name'])) { - echo $content[$i]['name']; - } else echo ' '; - echo ''; - if (isset($content[$i]['encoding'])) { - echo $content[$i]['encoding']; - } else echo ' '; - echo '
'; + echo $content[$i]['ent'].''; + if (isset($content[$i]['type'])) { + echo $content[$i]['type']; + } else echo 'TEXT/PLAIN'; + echo ''; + if (isset($content[$i]['name'])) { + echo $content[$i]['name']; + } else echo ' '; + echo ''; + if (isset($content[$i]['encoding'])) { + echo $content[$i]['encoding']; + } else echo ' '; + echo '

'."\n"; + echo '
'."\n"; } echo '

RFC822 Message body

'."\n\n"; echo '
'."\n\n";