X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fread_body.php;h=1440363b5ee3c722c52f127e6aafa9727459b79c;hb=069b4374494c35d8c68a8710841ed5180f1a8ba3;hp=4c751686cd423de2d70a8424c49ba7d2be34a167;hpb=f7fb20fe344ee5e3567937d2530032778802e9ed;p=squirrelmail.git diff --git a/src/read_body.php b/src/read_body.php index 4c751686..1440363b 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -1,35 +1,137 @@ -\n"; - displayPageHeader($mailbox); + if (!isset($config_php)) + include("../config/config.php"); + if (!isset($strings_php)) + include("../functions/strings.php"); + if (!isset($page_header_php)) + include("../functions/page_header.php"); + if (!isset($imap_php)) + include("../functions/imap.php"); + if (!isset($mime_php)) + include("../functions/mime.php"); + if (!isset($date_php)) + include("../functions/date.php"); + + include("../src/load_prefs.php"); + $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); + sqimap_mailbox_select($imapConnection, $mailbox); + displayPageHeader($color, $mailbox); + + if ($view_hdr) { + fputs ($imapConnection, "a003 FETCH $passed_id BODY[HEADER]\r\n"); + $read = sqimap_read_data ($imapConnection, "a003", true, $a, $b); + + echo "
"; + echo "\n"; + echo "
" . _("Viewing full header") . " - "; + echo ""; + echo ""._("View message") . "
\n"; + echo "\n"; + echo "
";
+      for ($i=1; $i < count($read)-1; $i++) {
+         $read[$i] = htmlspecialchars($read[$i]);
+         if (substr($read[$i], 0, 1) != "\t" && 
+             substr($read[$i], 0, 1) != " " && 
+             substr($read[$i], 0, 1) != "&" && 
+             trim($read[$i])) {
+            $pre = substr($read[$i], 0, strpos($read[$i], ":"));
+            $read[$i] = str_replace("$pre", "$pre", decodeHeader($read[$i]));
+         }
+         echo "$read[$i]";
+      }
+      echo "
\n"; + echo ""; + exit; + } + + // given an IMAP message id number, this will look it up in the cached and sorted msgs array and + // return the index. used for finding the next and previous messages + + // returns the index of the next valid message from the array + function findNextMessage() { + global $msort, $currentArrayIndex, $msgs; + for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { + if ($currentArrayIndex == $msgs[$key]["ID"]) { + next($msort); + $key = key($msort); + if (isset($key)) + return $msgs[$key]["ID"]; + } + } + return -1; + } + + // returns the index of the previous message from the array + function findPreviousMessage() { + global $msort, $currentArrayIndex, $msgs; + for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { + if ($currentArrayIndex == $msgs[$key]["ID"]) { + prev($msort); + $key = key($msort); + if (isset($key)) + return $msgs[$key]["ID"]; + } + } + return -1; + } + + if (isset($msgs)) { + $currentArrayIndex = $passed_id; + /* + for ($i=0; $i < count($msgs); $i++) { + if ($msgs[$i]["ID"] == $passed_id) { + $currentArrayIndex = $i; + break; + } + } + */ + } else { + $currentArrayIndex = -1; + } + + for ($i = 0; $i < count($msgs); $i++) { + if ($msgs[$i]["ID"] == $passed_id) + $msgs[$i]["FLAG_SEEN"] = true; + } // $message contains all information about the message // including header and body - $message = fetchMessage($imapConnection, $passed_id); + $message = sqimap_get_message($imapConnection, $passed_id, $mailbox); /** translate the subject and mailbox into url-able text **/ - $url_subj = urlencode(trim($message["HEADER"]["SUBJECT"])); + $url_subj = urlencode(trim(stripslashes($message->header->subject))); $urlMailbox = urlencode($mailbox); - $url_from = urlencode($message["HEADER"]["FROM"]); + $url_replyto = urlencode($message->header->replyto); + + $url_replytoall = urlencode($message->header->replyto); + $url_replytoallcc = urlencode(getLineOfAddrs($message->header->to) . ", " . getLineOfAddrs($message->header->cc)); - $dateString = getLongDateString($message["HEADER"]["DATE"]); + $dateString = getLongDateString($message->header->date); + $ent_num = findDisplayEntity($message); + + /** TEXT STRINGS DEFINITIONS **/ + $echo_more = _("more"); + $echo_less = _("less"); /** FORMAT THE TO STRING **/ $i = 0; $to_string = ""; - $to_ary = $message["HEADER"]["TO"]; + $to_ary = $message->header->to; while ($i < count($to_ary)) { $to_ary[$i] = htmlspecialchars($to_ary[$i]); + if ($to_string) $to_string = "$to_string
$to_ary[$i]"; else @@ -39,11 +141,11 @@ if (count($to_ary) > 1) { if ($show_more == false) { if ($i == 1) { - $to_string = "$to_string (more)"; + $to_string = "$to_string ($echo_more)"; $i = count($to_ary); } } else if ($i == 1) { - $to_string = "$to_string (less)"; + $to_string = "$to_string ($echo_less)"; } } } @@ -51,7 +153,7 @@ /** FORMAT THE CC STRING **/ $i = 0; $cc_string = ""; - $cc_ary = $message["HEADER"]["CC"]; + $cc_ary = $message->header->cc; while ($i < count($cc_ary)) { $cc_ary[$i] = htmlspecialchars($cc_ary[$i]); if ($cc_string) @@ -63,103 +165,127 @@ if (count($cc_ary) > 1) { if ($show_more_cc == false) { if ($i == 1) { - $cc_string = "$cc_string (more)"; + $cc_string = "$cc_string ($echo_more)"; $i = count($cc_ary); } } else if ($i == 1) { - $cc_string = "$cc_string (less)"; + $cc_string = "$cc_string ($echo_less)"; } } } /** make sure everything will display in HTML format **/ - $from_name = htmlspecialchars($message["HEADER"]["FROM"]); - $subject = htmlspecialchars($message["HEADER"]["SUBJECT"]); + $from_name = decodeHeader(htmlspecialchars($message->header->from)); + $subject = decodeHeader(htmlspecialchars(stripslashes($message->header->subject))); echo "
"; - echo "\n"; - echo "
"; - echo " "; + echo "
\n"; + echo " "; - echo " "; + echo "
"; + echo " "; echo " "; - echo " "; echo " "; echo "
"; - echo " "; - echo " Message List  "; - echo " Delete  "; - echo " "; - echo " "; - echo " "; - echo " Forward  "; - echo " Reply  "; - echo " "; + echo " "; + echo " "; + echo " "; + echo _("Message List"); + echo " | "; + echo " "; + echo _("Delete"); + echo "  "; + echo " "; + echo " "; + echo " \n"; + if ($currentArrayIndex == -1) { + echo "Previous | Next"; + } else { + $prev = findPreviousMessage(); + $next = findNextMessage(); + if ($prev != -1) + echo "" . _("Previous") . " | "; + else + echo _("Previous") . " | "; + if ($next != -1) + echo "" . _("Next") . ""; + else + echo _("Next"); + } + echo " \n"; + echo " "; + echo " "; + echo " "; + echo _("Forward"); + echo " | "; + echo " "; + echo _("Reply"); + echo " | "; + echo " "; + echo _("Reply All"); + echo "  "; + echo " "; echo "
"; echo "
"; - echo " \n"; + echo " \n"; - - echo " \n"; - echo " "; + echo "
"; + echo " \n"; echo " \n"; /** subject **/ - echo " \n"; + echo " "; echo " \n"; /** from **/ echo " \n"; - echo " \n"; echo " \n"; /** date **/ echo " \n"; - echo " \n"; echo " \n"; /** to **/ echo " \n"; - echo " \n"; echo " \n"; /** cc **/ - if ($message["HEADER"]["CC"][0]) { + if ($message->header->cc) { echo " \n"; - echo " \n"; echo " \n"; } - echo "
\n"; - echo " Subject:\n"; - echo " \n"; - echo " $subject\n"; + echo " \n"; + echo _("Subject:"); + echo " \n"; + echo " $subject\n"; echo " " . _("View full header") . "  
\n"; - echo " From:\n"; - echo " \n"; - echo " $from_name\n"; + echo " \n"; + echo _("From:"); + echo " \n"; + echo " $from_name\n"; echo "
\n"; - echo " Date:\n"; - echo " \n"; - echo " $dateString\n"; + echo " \n"; + echo _("Date:"); + echo " \n"; + echo " $dateString\n"; echo "
\n"; - echo " To:\n"; - echo " \n"; - echo " $to_string\n"; + echo " \n"; + echo _("To:"); + echo " \n"; + echo " $to_string\n"; echo "
\n"; - echo " Cc:\n"; - echo " \n"; - echo " $cc_string\n"; + echo " \n"; + echo " Cc:\n"; + echo " \n"; + echo " $cc_string\n"; echo "

\n"; - if (count($message["ENTITIES"]) > 1) { - echo "This is a multipart MIME encoded message.
"; - $i = 0; - while ($i < count($message["ENTITIES"])) { - echo "--(PART $i)--
"; - for ($p = 0; $p < count($message["ENTITIES"][$i][0]["BODY"]); $p++) { - echo $message["ENTITIES"][$i][0]["BODY"][$p]; - } - $i++; - } - } else { - echo "This is a single part mime encoded message
"; - for ($p = 0; $p < count($message["ENTITIES"][0]["BODY"]); $p++) { - echo $message["ENTITIES"][0]["BODY"][$p]; - } - } - echo "
 
"; + echo "
"; + echo "\n"; + + echo " \n"; + echo "
\n"; + $body = formatBody($imapConnection, $message, $color, $wrap_at); + echo "
"; + + echo "$body"; + + echo "
"; + echo "\n"; + echo " "; echo "
 
\n"; -?> \ No newline at end of file + sqimap_logout($imapConnection); +?>