X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=functions%2Fmime.php;h=3bae25afc97c7b25fac5f1b746c2161548e2c3b4;hp=da9fb61c4b763d2bbffe667ed3cced7fd3006980;hb=04632dbcbdd2793b533c66df10ba321441d03c2f;hpb=623332f32b08cf1c191ec38db8e349421f9296f8
diff --git a/functions/mime.php b/functions/mime.php
index da9fb61c..3bae25af 100644
--- a/functions/mime.php
+++ b/functions/mime.php
@@ -59,12 +59,18 @@
$id = $header->id;
fputs ($imap_stream, "a001 FETCH $id BODYSTRUCTURE\r\n");
$read = fgets ($imap_stream, 10000);
- $endline = fgets($imap_stream, 1024);
- $read = strtolower($read);
+ $response = substr($read, 0, 4);
+ while ($response != "a001") {
+ $bodystructure = $read;
+ $read = fgets ($imap_stream, 10000);
+ $response = substr($read, 0, 4);
+ }
+ // $read = strtolower($bodystructure);
+ $read = $bodystructure;
- if ($debug_mime) echo "$read
";
+ if ($debug_mime) echo "$read
\n";
// isolate the body structure and remove beginning and end parenthesis
- $read = trim(substr ($read, strpos($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) {
@@ -73,7 +79,7 @@
$end = mime_match_parenthesis(0, $read);
}
- if ($debug_mime) echo "$read
";
+ if ($debug_mime) echo "$read
\n";
$msg = mime_parse_structure ($read, 0);
$msg->header = $header;
@@ -89,7 +95,7 @@
// to mime_get_elements()
function mime_parse_structure ($structure, $ent_id) {
global $debug_mime;
- if ($debug_mime) echo "START: mime_parse_structure()
";
+ if ($debug_mime) echo "START: mime_parse_structure()
\n";
$msg = new message();
if (substr($structure, 0, 1) == "(") {
$ent_id = mime_new_element_level($ent_id);
@@ -155,7 +161,7 @@
$structure = trim($structure);
$char = substr($structure, 0, 1);
- if (substr($structure, 0, 3) == "nil") {
+ if (strtolower(substr($structure, 0, 3)) == "nil") {
$text = "";
$structure = substr($structure, 3);
} else if ($char == "\"") {
@@ -190,20 +196,20 @@
// This is where all the text parts get put into the header
switch ($elem_num) {
case 1:
- $msg->header->type0 = $text;
- if ($debug_mime) echo "type0 = $text
";
+ $msg->header->type0 = strtolower($text);
+ if ($debug_mime) echo "type0 = ".strtolower($text)."
";
break;
case 2:
- $msg->header->type1 = $text;
- if ($debug_mime) echo "type1 = $text
";
+ $msg->header->type1 = strtolower($text);
+ if ($debug_mime) echo "type1 = ".strtolower($text)."
";
break;
case 5:
$msg->header->description = $text;
if ($debug_mime) echo "description = $text
";
break;
case 6:
- $msg->header->encoding = $text;
- if ($debug_mime) echo "encoding = $text
";
+ $msg->header->encoding = strtolower($text);
+ if ($debug_mime) echo "encoding = ".strtolower($text)."
";
break;
case 7:
$msg->header->size = $text;
@@ -301,7 +307,7 @@
$structure = trim(substr($structure, strlen($tmp) + 2));
$k = count($props);
- $props[$k]["name"] = $tmp;
+ $props[$k]["name"] = strtolower($tmp);
$props[$k]["value"] = $value;
} else if ($char == "(") {
$end = mime_match_parenthesis (0, $structure);
@@ -422,7 +428,7 @@
// this if statement checks for the entity to show as the
// primary message. To add more of them, just put them in the
// order that is their priority.
- global $username, $key, $imapServerAddress, $imapPort;
+ global $startMessage, $username, $key, $imapServerAddress, $imapPort;
$id = $message->header->id;
$urlmailbox = urlencode($message->header->mailbox);
@@ -444,14 +450,16 @@
/** Display the ATTACHMENTS: message if there's more than one part **/
if ($message->entities) {
+ $body .= "";
$body .= "
"; $body .= "ATTACHMENTS:"; $body .= " |
"; $num = 0; - /** make this recurisve at some point **/ $body .= formatAttachments ($message, $ent_num, $message->header->mailbox, $id); $body .= " |