From bbdea028fe03a9579370cebc9e73b0877198cbb3 Mon Sep 17 00:00:00 2001 From: stekkel Date: Thu, 5 Sep 2002 13:44:57 +0000 Subject: [PATCH] Added Message details plugin to CVS git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@3566 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- .../message_details_bottom.php | 316 ++++++++++++++++++ .../message_details/message_details_main.php | 23 ++ .../message_details/message_details_top.php | 40 +++ plugins/message_details/setup.php | 52 +++ 4 files changed, 431 insertions(+) create mode 100644 plugins/message_details/message_details_bottom.php create mode 100644 plugins/message_details/message_details_main.php create mode 100644 plugins/message_details/message_details_top.php create mode 100644 plugins/message_details/setup.php diff --git a/plugins/message_details/message_details_bottom.php b/plugins/message_details/message_details_bottom.php new file mode 100644 index 00000000..f70ea3fd --- /dev/null +++ b/plugins/message_details/message_details_bottom.php @@ -0,0 +1,316 @@ +'; +$end = ''; +$entStr = ''; +$bla =''; +$content = array (); +$content_indx = -1; +$contentset = false; + +$count=count($body); +$body[$count-1] = substr($body[$count-1], -1); +for ($i=1; $i < $count; $i++) { + $line = trim($body[$i]); + if ($line == '') { + $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; + } else { + if (!$header && $messageheader) { + $messageheaderstart=true; + if ($pre != '') { + $pre = ''; + } + } + 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); + + $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']; + + $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 = ''; + } + + $pre .= ''; + //$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; + } + } + } +*/ + $line = htmlspecialchars($line); + $message_body .= "$pre"."$line"."$end".'
'."\r\n"; +} +//echo returnTime($start).'
'; +$xtra = << + + + + + +ECHO; + +displayHtmlHeader( _("Message Details"), $xtra, FALSE ); +/* body */ +echo ''."\n"; +echo ''."\n"; +echo '
'."\n"; +//session_register("entities"); +//$keys = array_keys($entities); +//$start = gettimeofday(); +//foreach ($keys as $key) { +// if (isset($entities[$key])) { +// if ($entities[$key]['encoding'] == 'base64') { +// echo '
'; +// } +// } +//} +//session_unregister("entities"); + +if (count($content) > 0) { + echo '

Bodystructure

'."\n\n"; + echo ''. + ''. + ''. + ''. + ''. + ''. + + ''. + ''; + for ($i = 0; $i < count($content);$i++) { + 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 '

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

RFC822 Message body

'."\n\n"; +echo '
'."\n\n"; +echo $message_body; +echo '
'; +?> diff --git a/plugins/message_details/message_details_main.php b/plugins/message_details/message_details_main.php new file mode 100644 index 00000000..1e262efc --- /dev/null +++ b/plugins/message_details/message_details_main.php @@ -0,0 +1,23 @@ +\n"; +echo ''; +echo ''; +echo ''."\n"."\n"; +?> \ No newline at end of file diff --git a/plugins/message_details/message_details_top.php b/plugins/message_details/message_details_top.php new file mode 100644 index 00000000..8e97c09c --- /dev/null +++ b/plugins/message_details/message_details_top.php @@ -0,0 +1,40 @@ +\n". + "\n". + "\n", FALSE ); + + +echo "\n" . + '
'. + '
' . + '   '. + '  '. + ' '. + ' ' . + '
'. + '
'. + ''. + "\n"; +?> \ No newline at end of file diff --git a/plugins/message_details/setup.php b/plugins/message_details/setup.php new file mode 100644 index 00000000..085c541d --- /dev/null +++ b/plugins/message_details/setup.php @@ -0,0 +1,52 @@ +' . "\n" . + '\n" . + "\n" . + " | 
$print_text\n"; + } + echo $result; +} + \ No newline at end of file -- 2.25.1