This commit contains the following things (this is NOT the magic update):
* Optimization. Very subtiles optimizations has been applied to the code. * Id mime parsing. Detects cid: objects. * Debugging removed. All if $debug code has been removed. (Debug code is not supposed to be in stable releases). * Indentation and space tab.
This commit is contained in:
parent
a903a2c115
commit
78076e8f62
1 changed files with 246 additions and 260 deletions
|
@ -11,9 +11,6 @@
|
|||
return;
|
||||
define('mime_php', true);
|
||||
|
||||
global $debug_mime;
|
||||
$debug_mime = false;
|
||||
|
||||
require_once('../functions/imap.php');
|
||||
|
||||
/** Setting up the objects that have the structure for the message **/
|
||||
|
@ -43,8 +40,6 @@
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* --------------------------------------------------------------------------------- */
|
||||
/* MIME DECODING */
|
||||
/* --------------------------------------------------------------------------------- */
|
||||
|
@ -53,27 +48,26 @@
|
|||
// It will return this object for use with all relevant header information and
|
||||
// fully parsed into the standard "message" object format.
|
||||
function mime_structure ($imap_stream, $header) {
|
||||
global $debug_mime;
|
||||
sqimap_messages_flag ($imap_stream, $header->id, $header->id, "Seen");
|
||||
|
||||
sqimap_messages_flag ($imap_stream, $header->id, $header->id, 'Seen');
|
||||
$ssid = sqimap_session_id();
|
||||
$lsid = strlen( $ssid );
|
||||
$id = $header->id;
|
||||
fputs ($imap_stream, sqimap_session_id() . " FETCH $id BODYSTRUCTURE\r\n");
|
||||
fputs ($imap_stream, "$ssid FETCH $id BODYSTRUCTURE\r\n");
|
||||
//
|
||||
// This should use sqimap_read_data instead of reading it itself
|
||||
//
|
||||
$sid = sqimap_session_id();
|
||||
$lsid = strlen( $sid );
|
||||
$read = fgets ($imap_stream, 10000);
|
||||
$bodystructure = "";
|
||||
while( substr($read, 0, $lsid) <> $sid && !feof( $imap_stream ) ) {
|
||||
$bodystructure = '';
|
||||
while( substr($read, 0, $lsid) <> $ssid &&
|
||||
!feof( $imap_stream ) ) {
|
||||
$bodystructure .= $read;
|
||||
$read = fgets ($imap_stream, 10000);
|
||||
}
|
||||
$read = $bodystructure;
|
||||
|
||||
if ($debug_mime) echo "<tt>$read</tt><br><br>\n";
|
||||
// isolate the body structure and remove beginning and end parenthesis
|
||||
$read = trim(substr ($read, strpos(strtolower($read), "bodystructure") + 13));
|
||||
$read = trim(substr ($read, strpos(strtolower($read), 'bodystructure') + 13));
|
||||
$read = trim(substr ($read, 0, -1));
|
||||
$end = mime_match_parenthesis(0, $read);
|
||||
while ($end == strlen($read)-1) {
|
||||
|
@ -82,8 +76,6 @@
|
|||
$end = mime_match_parenthesis(0, $read);
|
||||
}
|
||||
|
||||
if ($debug_mime) echo "<tt>$read</tt><br><br>\n";
|
||||
|
||||
$msg = mime_parse_structure ($read, 0);
|
||||
$msg->header = $header;
|
||||
return $msg;
|
||||
|
@ -97,15 +89,12 @@
|
|||
// then it parses it and adds the necessary header information (by calling out
|
||||
// to mime_get_elements()
|
||||
function mime_parse_structure ($structure, $ent_id) {
|
||||
global $debug_mime;
|
||||
if ($debug_mime) echo "<font color=008800><tt>START: mime_parse_structure()</tt></font><br>\n";
|
||||
|
||||
$msg = new message();
|
||||
if (substr($structure, 0, 1) == "(") {
|
||||
if ($structure{0} == '(') {
|
||||
$ent_id = mime_new_element_level($ent_id);
|
||||
$start = $end = -1;
|
||||
if ($debug_mime) echo "<br><font color=0000aa><tt>$structure</tt></font><br>";
|
||||
do {
|
||||
if ($debug_mime) echo "<font color=008800><tt>Found entity...</tt></font><br>";
|
||||
$start = $end+1;
|
||||
$end = mime_match_parenthesis ($start, $structure);
|
||||
|
||||
|
@ -113,14 +102,11 @@
|
|||
$ent_id = mime_increment_id ($ent_id);
|
||||
$newmsg = mime_parse_structure ($element, $ent_id);
|
||||
$msg->addEntity ($newmsg);
|
||||
} while (substr($structure, $end+1, 1) == "(");
|
||||
} while ($structure{$end+1} == '(');
|
||||
} else {
|
||||
// parse the elements
|
||||
if ($debug_mime) echo "<br><font color=0000aa><tt>$structure</tt></font><br>";
|
||||
$msg = mime_get_element ($structure, $msg, $ent_id);
|
||||
if ($debug_mime) echo "<br>";
|
||||
}
|
||||
if ($debug_mime) echo "<font color=008800><tt> END: mime_parse_structure()</tt></font><br>";
|
||||
return $msg;
|
||||
}
|
||||
|
||||
|
@ -128,7 +114,7 @@
|
|||
// the following: 1, 1.2, 4.3.2.4.1, etc. This function increments
|
||||
// the last number of the element id, changing 1.2 to 1.3.
|
||||
function mime_increment_id ($id) {
|
||||
global $debug_mime;
|
||||
|
||||
if (strpos($id, ".")) {
|
||||
$first = substr($id, 0, strrpos($id, "."));
|
||||
$last = substr($id, strrpos($id, ".")+1);
|
||||
|
@ -137,7 +123,7 @@
|
|||
} else {
|
||||
$new = $id + 1;
|
||||
}
|
||||
if ($debug_mime) echo "<b>INCREMENT: $new</b><br>";
|
||||
|
||||
return $new;
|
||||
}
|
||||
|
||||
|
@ -148,14 +134,18 @@
|
|||
// to make a special case if it is the first entity_id. It
|
||||
// always increments it, and that works fine.
|
||||
function mime_new_element_level ($id) {
|
||||
if (!$id) $id = 0;
|
||||
else $id = $id . ".0";
|
||||
|
||||
return $id;
|
||||
if (!$id) {
|
||||
$id = 0;
|
||||
} else {
|
||||
$id = $id . '.0';
|
||||
}
|
||||
|
||||
return( $id );
|
||||
}
|
||||
|
||||
function mime_get_element (&$structure, $msg, $ent_id) {
|
||||
global $debug_mime;
|
||||
|
||||
$elem_num = 1;
|
||||
$msg->header = new msg_header();
|
||||
$msg->header->entity_id = $ent_id;
|
||||
|
@ -163,23 +153,21 @@
|
|||
|
||||
while (strlen($structure) > 0) {
|
||||
$structure = trim($structure);
|
||||
$char = substr($structure, 0, 1);
|
||||
$char = $structure{0};
|
||||
|
||||
if (strtolower(substr($structure, 0, 3)) == "nil") {
|
||||
$text = "";
|
||||
if (strtolower(substr($structure, 0, 3)) == 'nil') {
|
||||
$text = '';
|
||||
$structure = substr($structure, 3);
|
||||
} else if ($char == "\"") {
|
||||
} else if ($char == '"') {
|
||||
// loop through until we find the matching quote, and return that as a string
|
||||
$pos = 1;
|
||||
$char = substr($structure, $pos, 1);
|
||||
$text = "";
|
||||
while ($char != "\"" && $pos < strlen($structure)) {
|
||||
$text = '';
|
||||
while ( ($char = $structure{$pos} ) <> '"' && $pos < strlen($structure)) {
|
||||
$text .= $char;
|
||||
$pos++;
|
||||
$char = substr($structure, $pos, 1);
|
||||
}
|
||||
$structure = substr($structure, strlen($text) + 2);
|
||||
} else if ($char == "(") {
|
||||
} else if ($char == '(') {
|
||||
// comment me
|
||||
$end = mime_match_parenthesis (0, $structure);
|
||||
$sub = substr($structure, 1, $end-1);
|
||||
|
@ -188,51 +176,48 @@
|
|||
} else {
|
||||
// loop through until we find a space or an end parenthesis
|
||||
$pos = 0;
|
||||
$char = substr($structure, $pos, 1);
|
||||
$text = "";
|
||||
while ($char != " " && $char != ")" && $pos < strlen($structure)) {
|
||||
$char = $structure{$pos};
|
||||
$text = '';
|
||||
while ($char != ' ' && $char != ')' && $pos < strlen($structure)) {
|
||||
$text .= $char;
|
||||
$pos++;
|
||||
$char = substr($structure, $pos, 1);
|
||||
$char = $structure{$pos};
|
||||
}
|
||||
$structure = substr($structure, strlen($text));
|
||||
}
|
||||
if ($debug_mime) echo "<tt>$elem_num : $text</tt><br>";
|
||||
|
||||
// This is where all the text parts get put into the header
|
||||
switch ($elem_num) {
|
||||
case 1:
|
||||
$msg->header->type0 = strtolower($text);
|
||||
if ($debug_mime) echo "<tt>type0 = ".strtolower($text)."</tt><br>";
|
||||
break;
|
||||
case 2:
|
||||
$msg->header->type1 = strtolower($text);
|
||||
if ($debug_mime) echo "<tt>type1 = ".strtolower($text)."</tt><br>";
|
||||
break;
|
||||
case 4: // Id
|
||||
// Invisimail enclose images with <>
|
||||
$msg->header->id = str_replace( '<', '', str_replace( '>', '', $text ) );
|
||||
break;
|
||||
case 5:
|
||||
$msg->header->description = $text;
|
||||
if ($debug_mime) echo "<tt>description = $text</tt><br>";
|
||||
break;
|
||||
case 6:
|
||||
$msg->header->encoding = strtolower($text);
|
||||
if ($debug_mime) echo "<tt>encoding = ".strtolower($text)."</tt><br>";
|
||||
break;
|
||||
case 7:
|
||||
$msg->header->size = $text;
|
||||
if ($debug_mime) echo "<tt>size = $text</tt><br>";
|
||||
break;
|
||||
default:
|
||||
if ($msg->header->type0 == "text" && $elem_num == 8) {
|
||||
if ($msg->header->type0 == 'text' && $elem_num == 8) {
|
||||
// This is a plain text message, so lets get the number of lines
|
||||
// that it contains.
|
||||
$msg->header->num_lines = $text;
|
||||
if ($debug_mime) echo "<tt>num_lines = $text</tt><br>";
|
||||
|
||||
} else if ($msg->header->type0 == "message" && $msg->header->type1 == "rfc822" && $elem_num == 8) {
|
||||
} else if ($msg->header->type0 == 'message' && $msg->header->type1 == 'rfc822' && $elem_num == 8) {
|
||||
// This is an encapsulated message, so lets start all over again and
|
||||
// parse this message adding it on to the existing one.
|
||||
$structure = trim($structure);
|
||||
if (substr($structure, 0, 1) == "(") {
|
||||
if ( $structure{0} == '(' ) {
|
||||
$e = mime_match_parenthesis (0, $structure);
|
||||
$structure = substr($structure, 0, $e);
|
||||
$structure = substr($structure, 1);
|
||||
|
@ -241,7 +226,7 @@
|
|||
// the following conditional is there to correct a bug that wasn't
|
||||
// incrementing the entity IDs correctly because of the special case
|
||||
// that message/rfc822 is. This fixes it fine.
|
||||
if (substr($structure, 1, 1) != "(")
|
||||
if (substr($structure, 1, 1) != '(')
|
||||
$m->header->entity_id = mime_increment_id(mime_new_element_level($ent_id));
|
||||
|
||||
// Now we'll go through and reformat the results.
|
||||
|
@ -261,10 +246,9 @@
|
|||
$text = "";
|
||||
}
|
||||
// loop through the additional properties and put those in the various headers
|
||||
if ($msg->header->type0 != "message") {
|
||||
if ($msg->header->type0 != 'message') {
|
||||
for ($i=0; $i < count($properties); $i++) {
|
||||
$msg->header->{$properties[$i]["name"]} = $properties[$i]["value"];
|
||||
if ($debug_mime) echo "<tt>".$properties[$i]["name"]." = " . $properties[$i]["value"] . "</tt><br>";
|
||||
$msg->header->{$properties[$i]['name']} = $properties[$i]['value'];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -286,38 +270,36 @@
|
|||
// $props[0]["name"] = "filename";
|
||||
// $props[0]["value"] = "luke.tar.gz";
|
||||
function mime_get_props ($props, $structure) {
|
||||
global $debug_mime;
|
||||
|
||||
while (strlen($structure) > 0) {
|
||||
$structure = trim($structure);
|
||||
$char = substr($structure, 0, 1);
|
||||
$char = $structure{0};
|
||||
|
||||
if ($char == "\"") {
|
||||
if ($char == '"') {
|
||||
$pos = 1;
|
||||
$char = substr($structure, $pos, 1);
|
||||
$tmp = "";
|
||||
while ($char != "\"" && $pos < strlen($structure)) {
|
||||
$tmp = '';
|
||||
while ( ( $char = $structure{$pos} ) != '"' &&
|
||||
$pos < strlen($structure)) {
|
||||
$tmp .= $char;
|
||||
$pos++;
|
||||
$char = substr($structure, $pos, 1);
|
||||
}
|
||||
$structure = trim(substr($structure, strlen($tmp) + 2));
|
||||
$char = substr($structure, 0, 1);
|
||||
$char = $structure{0};
|
||||
|
||||
if ($char == "\"") {
|
||||
if ($char == '"') {
|
||||
$pos = 1;
|
||||
$char = substr($structure, $pos, 1);
|
||||
$value = "";
|
||||
while ($char != "\"" && $pos < strlen($structure)) {
|
||||
$value = '';
|
||||
while ( ( $char = $structure{$pos} ) != '"' &&
|
||||
$pos < strlen($structure) ) {
|
||||
$value .= $char;
|
||||
$pos++;
|
||||
$char = substr($structure, $pos, 1);
|
||||
}
|
||||
$structure = trim(substr($structure, strlen($tmp) + 2));
|
||||
|
||||
$k = count($props);
|
||||
$props[$k]["name"] = strtolower($tmp);
|
||||
$props[$k]["value"] = $value;
|
||||
} else if ($char == "(") {
|
||||
$props[$k]['name'] = strtolower($tmp);
|
||||
$props[$k]['value'] = $value;
|
||||
} else if ($char == '(') {
|
||||
$end = mime_match_parenthesis (0, $structure);
|
||||
$sub = substr($structure, 1, $end-1);
|
||||
if (! isset($props))
|
||||
|
@ -326,7 +308,7 @@
|
|||
$structure = substr($structure, strlen($sub) + 2);
|
||||
}
|
||||
return $props;
|
||||
} else if ($char == "(") {
|
||||
} else if ($char == '(') {
|
||||
$end = mime_match_parenthesis (0, $structure);
|
||||
$sub = substr($structure, 1, $end-1);
|
||||
$props = mime_get_props($props, $sub);
|
||||
|
@ -344,34 +326,35 @@
|
|||
// x x
|
||||
// then this would return 42 to match up those two.
|
||||
function mime_match_parenthesis ($pos, $structure) {
|
||||
$char = substr($structure, $pos, 1);
|
||||
|
||||
$j = strlen( $structure );
|
||||
|
||||
// ignore all extra characters
|
||||
// If inside of a string, skip string -- Boundary IDs and other
|
||||
// things can have ) in them.
|
||||
if ($char != '(')
|
||||
return strlen($structure);
|
||||
while ($pos < strlen($structure)) {
|
||||
if( $structure{$pos} != '(' )
|
||||
return( $j );
|
||||
|
||||
while( $pos < $j ) {
|
||||
$pos++;
|
||||
$char = substr($structure, $pos, 1);
|
||||
if ($char == ")") {
|
||||
if ($structure{$pos} == ')') {
|
||||
return $pos;
|
||||
} else if ($char == '"') {
|
||||
$pos ++;
|
||||
while (substr($structure, $pos, 1) != '"' &&
|
||||
$pos < strlen($structure)) {
|
||||
} elseif ($structure{$pos} == '"') {
|
||||
$pos++;
|
||||
while( $structure{$pos} != '"' &&
|
||||
$pos < $j ) {
|
||||
if (substr($structure, $pos, 2) == '\\"')
|
||||
$pos ++;
|
||||
$pos++;
|
||||
elseif (substr($structure, $pos, 2) == '\\\\')
|
||||
$pos ++;
|
||||
$pos ++;
|
||||
$pos++;
|
||||
$pos++;
|
||||
}
|
||||
} else if ($char == "(") {
|
||||
} elseif ( $structure{$pos} == '(' ) {
|
||||
$pos = mime_match_parenthesis ($pos, $structure);
|
||||
}
|
||||
}
|
||||
echo "Error decoding mime structure. Report this as a bug!<br>\n";
|
||||
return $pos;
|
||||
return( $pos );
|
||||
}
|
||||
|
||||
function mime_fetch_body ($imap_stream, $id, $ent_id) {
|
||||
|
@ -408,22 +391,22 @@
|
|||
// do a bit of error correction. If we couldn't find the entity id, just guess
|
||||
// that it is the first one. That is usually the case anyway.
|
||||
if (!$ent_id) $ent_id = 1;
|
||||
|
||||
$sid = sqimap_session_id();
|
||||
// Don't kill the connection if the browser is over a dialup
|
||||
// and it would take over 30 seconds to download it.
|
||||
set_time_limit(0);
|
||||
|
||||
fputs ($imap_stream, sqimap_session_id() . " FETCH $id BODY[$ent_id]\r\n");
|
||||
fputs ($imap_stream, "$sid FETCH $id BODY[$ent_id]\r\n");
|
||||
$cnt = 0;
|
||||
$continue = true;
|
||||
$read = fgets ($imap_stream,4096);
|
||||
// This could be bad -- if the section has sqimap_session_id() . ' OK'
|
||||
// or similar, it will kill the download.
|
||||
while (!ereg("^" . sqimap_session_id() . " (OK|BAD|NO)(.*)$", $read, $regs)) {
|
||||
if (trim($read) == ")==") {
|
||||
while (!ereg("^".$sid." (OK|BAD|NO)(.*)$", $read, $regs)) {
|
||||
if (trim($read) == ')==') {
|
||||
$read1 = $read;
|
||||
$read = fgets ($imap_stream,4096);
|
||||
if (ereg("^" . sqimap_session_id() . " (OK|BAD|NO)(.*)$", $read, $regs)) {
|
||||
if (ereg("^".$sid." (OK|BAD|NO)(.*)$", $read, $regs)) {
|
||||
return;
|
||||
} else {
|
||||
echo decodeBody($read1, $encoding) .
|
||||
|
@ -451,10 +434,11 @@
|
|||
|
||||
// This is here for debugging purposese. It will print out a list
|
||||
// of all the entity IDs that are in the $message object.
|
||||
/*
|
||||
function listEntities ($message) {
|
||||
if ($message) {
|
||||
if ($message->header->entity_id)
|
||||
echo "<tt>" . $message->header->entity_id . " : " . $message->header->type0 . "/" . $message->header->type1 . "<br>";
|
||||
echo "<tt>" . $message->header->entity_id . ' : ' . $message->header->type0 . '/' . $message->header->type1 . '<br>';
|
||||
for ($i = 0; $message->entities[$i]; $i++) {
|
||||
$msg = listEntities($message->entities[$i], $ent_id);
|
||||
if ($msg)
|
||||
|
@ -462,6 +446,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// returns a $message object for a particular entity id
|
||||
function getEntity ($message, $ent_id) {
|
||||
|
@ -487,8 +472,8 @@
|
|||
if (! $message)
|
||||
return 0;
|
||||
|
||||
if ($message->header->type0 == "multipart" &&
|
||||
$message->header->type1 == "alternative" &&
|
||||
if ($message->header->type0 == 'multipart' &&
|
||||
$message->header->type1 == 'alternative' &&
|
||||
$show_html_default && ! $textOnly) {
|
||||
$entity = findDisplayEntityHTML($message);
|
||||
if ($entity != 0)
|
||||
|
@ -496,10 +481,10 @@
|
|||
}
|
||||
|
||||
// Show text/plain or text/html -- the first one we find.
|
||||
if ($message->header->type0 == 'text' &&
|
||||
($message->header->type1 == 'plain' ||
|
||||
$message->header->type1 == 'html') &&
|
||||
isset($message->header->entity_id))
|
||||
if ( $message->header->type0 == 'text' &&
|
||||
( $message->header->type1 == 'plain' ||
|
||||
$message->header->type1 == 'html' ) &&
|
||||
isset($message->header->entity_id) )
|
||||
return $message->header->entity_id;
|
||||
|
||||
for ($i=0; isset($message->entities[$i]); $i++) {
|
||||
|
@ -544,8 +529,8 @@
|
|||
// Pass the 0 to mean that we want the 'best' viewable one
|
||||
$ent_num = findDisplayEntity ($message, 0);
|
||||
$body_message = getEntity($message, $ent_num);
|
||||
if (($body_message->header->type0 == "text") ||
|
||||
($body_message->header->type0 == "rfc822")) {
|
||||
if (($body_message->header->type0 == 'text') ||
|
||||
($body_message->header->type0 == 'rfc822')) {
|
||||
|
||||
$body = mime_fetch_body ($imap_stream, $id, $ent_num);
|
||||
$body = decodeBody($body, $body_message->header->encoding);
|
||||
|
@ -569,7 +554,7 @@
|
|||
} else {
|
||||
$body = formatAttachments ($message, -1, $message->header->mailbox, $id);
|
||||
}
|
||||
return $body;
|
||||
return( $body );
|
||||
}
|
||||
|
||||
// A recursive function that returns a list of attachments with links
|
||||
|
@ -580,22 +565,18 @@
|
|||
static $ShownHTML = 0;
|
||||
|
||||
$body = "";
|
||||
if ($ShownHTML == 0)
|
||||
{
|
||||
if ($ShownHTML == 0) {
|
||||
$ShownHTML = 1;
|
||||
|
||||
$body .= "<TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=2 BORDER=0 BGCOLOR=\"$color[0]\"><TR>\n";
|
||||
$body .= "<TH ALIGN=\"left\" BGCOLOR=\"$color[9]\"><B>\n";
|
||||
$body .= _("Attachments") . ':';
|
||||
$body .= "</B></TH></TR><TR><TD>\n";
|
||||
$body .= "<TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=2 BORDER=0 BGCOLOR=\"$color[0]\"><TR>\n" .
|
||||
"<TH ALIGN=\"left\" BGCOLOR=\"$color[9]\"><B>\n" .
|
||||
_("Attachments") . ':' .
|
||||
"</B></TH></TR><TR><TD>\n" .
|
||||
"<TABLE CELLSPACING=0 CELLPADDING=1 BORDER=0>\n" .
|
||||
formatAttachments ($message, $ent_id, $mailbox, $id) .
|
||||
"</TABLE></TD></TR></TABLE>";
|
||||
|
||||
$body .= "<TABLE CELLSPACING=0 CELLPADDING=1 BORDER=0>\n";
|
||||
|
||||
$body .= formatAttachments ($message, $ent_id, $mailbox, $id);
|
||||
|
||||
$body .= "</TABLE></TD></TR></TABLE>";
|
||||
|
||||
return $body;
|
||||
return( $body );
|
||||
}
|
||||
|
||||
if ($message) {
|
||||
|
@ -606,9 +587,13 @@
|
|||
|
||||
if ($message->header->entity_id != $ent_id) {
|
||||
$filename = decodeHeader($message->header->filename);
|
||||
if (trim($filename) == "") {
|
||||
if (trim($name) == "") {
|
||||
$display_filename = "untitled-".$message->header->entity_id;
|
||||
if (trim($filename) == '') {
|
||||
if (trim($name) == '') {
|
||||
if( trim( $message->header->id ) == '' )
|
||||
$display_filename = 'untitled-[' . $message->header->entity_id . ']' ;
|
||||
else
|
||||
$display_filename = 'cid: ' . $message->header->id;
|
||||
// $display_filename = 'untitled-[' . $message->header->entity_id . ']' ;
|
||||
} else {
|
||||
$display_filename = $name;
|
||||
$filename = $name;
|
||||
|
@ -636,26 +621,22 @@
|
|||
$Links = $HookResults[1];
|
||||
$DefaultLink = $HookResults[6];
|
||||
|
||||
$body .= '<TR><TD> </TD><TD>';
|
||||
$body .= "<A HREF=\"$DefaultLink\">$display_filename</A> </TD>";
|
||||
$body .= '<TD><SMALL><b>' . show_readable_size($message->header->size) .
|
||||
'</b> </small></TD>';
|
||||
$body .= "<TD><SMALL>[ $type0/$type1 ] </SMALL></TD>";
|
||||
$body .= '<TD><SMALL>';
|
||||
$body .= '<TR><TD> </TD><TD>' .
|
||||
"<A HREF=\"$DefaultLink\">$display_filename</A> </TD>" .
|
||||
'<TD><SMALL><b>' . show_readable_size($message->header->size) .
|
||||
'</b> </small></TD>' .
|
||||
"<TD><SMALL>[ $type0/$type1 ] </SMALL></TD>" .
|
||||
'<TD><SMALL>';
|
||||
if ($message->header->description)
|
||||
$body .= '<b>' . htmlspecialchars($message->header->description) . '</b>';
|
||||
$body .= '</SMALL></TD><TD><SMALL> ';
|
||||
|
||||
|
||||
$SkipSpaces = 1;
|
||||
foreach ($Links as $Val)
|
||||
{
|
||||
if ($SkipSpaces)
|
||||
{
|
||||
foreach ($Links as $Val) {
|
||||
if ($SkipSpaces) {
|
||||
$SkipSpaces = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
$body .= ' | ';
|
||||
}
|
||||
$body .= '<a href="' . $Val['href'] . '">' . $Val['text'] . '</a>';
|
||||
|
@ -665,13 +646,12 @@
|
|||
|
||||
$body .= "</SMALL></TD></TR>\n";
|
||||
}
|
||||
return $body;
|
||||
} else {
|
||||
for ($i = 0; $i < count($message->entities); $i++) {
|
||||
$body .= formatAttachments ($message->entities[$i], $ent_id, $mailbox, $id);
|
||||
}
|
||||
return $body;
|
||||
}
|
||||
return( $body );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -683,12 +663,18 @@
|
|||
|
||||
global $show_html_default;
|
||||
|
||||
if ($encoding == "quoted-printable") {
|
||||
if ($encoding == 'quoted-printable') {
|
||||
$body = quoted_printable_decode($body);
|
||||
|
||||
|
||||
/*
|
||||
Following code has been comented as I see no reason for it.
|
||||
If there is any please tell me a mingo@rotedic.com
|
||||
|
||||
while (ereg("=\n", $body))
|
||||
$body = ereg_replace ("=\n", "", $body);
|
||||
} else if ($encoding == "base64") {
|
||||
*/
|
||||
} else if ($encoding == 'base64') {
|
||||
$body = base64_decode($body);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue