+ $urlMailbox = urlencode($mailbox);
+ $url = $base_uri.'src/view_header.php?'.$_SERVER['QUERY_STRING'];
+
+ $s = "<TR>\n" .
+ '<TD VALIGN="MIDDLE" ALIGN="RIGHT" WIDTH="20%"><B>' . _("Options") . ": </B></TD>\n" .
+ '<TD VALIGN="MIDDLE" ALIGN="LEFT" WIDTH="80%"><SMALL>' .
+ '<a href="'.$url.'">'._("View Full Header").'</a>';
+
+ /* Output the printer friendly link if we are in subtle mode. */
+ $s .= ' | ' .
+ printer_friendly_link($mailbox, $passed_id, $passed_ent_id, $color);
+ echo $s;
+ do_hook("read_body_header_right");
+ $s = "</SMALL></TD>\n" .
+ "</TR>\n";
+ echo $s;
+
+}
+
+/***************************/
+/* Main of read_body.php */
+/***************************/
+
+/* get the globals we may need */
+
+$username = $_SESSION['username'];
+$key = $_COOKIE['key'];
+$onetimepad = $_SESSION['onetimepad'];
+$msgs = $_SESSION['msgs'];
+$base_uri = $_SESSION['base_uri'];
+$delimiter = $_SESSION['delimiter'];
+
+if (isset($_GET['passed_id'])) {
+ $passed_id = (int) $_GET['passed_id'];
+}
+elseif (isset($_POST['passed_id'])) {
+ $passed_id = (int) $_POST['passed_id'];
+}
+
+if (isset($_GET['passed_ent_id'])) {
+ $passed_ent_id = $_GET['passed_ent_id'];
+}
+elseif (isset($_POST['passed_ent_id'])) {
+ $passed_ent_id = $_POST['passed_ent_id'];
+}
+
+if (isset($_GET['sendreceipt'])) {
+ $sendreceipt = $_GET['sendreceipt'];
+}
+
+if (isset($_GET['sort'])) {
+ $sort = (int) $_GET['sort'];
+}
+elseif (isset($_POST['sort'])) {
+ $sort = (int) $_POST['sort'];
+}
+if (isset($_GET['startMessage'])) {
+ $startMessage = (int) $_GET['startMessage'];
+}
+elseif (isset($_POST['startMessage'])) {
+ $startMessage = (int) $_POST['startMessage'];
+}
+if (isset($_GET['show_more'])) {
+ $show_more = (int) $_GET['show_more'];
+}
+if (isset($_GET['show_more_cc'])) {
+ $show_more_cc = (int) $_GET['show_more_cc'];
+}
+if (isset($_GET['show_more_bcc'])) {
+ $show_more_bcc = (int) $_GET['show_more_bcc'];
+}
+if (isset($_GET['mailbox'])) {
+ $mailbox = $_GET['mailbox'];
+}
+elseif (isset($_POST['mailbox'])) {
+ $mailbox = $_POST['mailbox'];
+}
+if (isset($_GET['where'])) {
+ $where = $_GET['where'];
+}
+if (isset($_GET['what'])) {
+ $what = $_GET['what'];
+}
+if (isset($_GET['view_hdr'])) {
+ $view_hdr = (int) $_GET['view_hdr'];
+}
+if (isset($_SESSION['server_sort_array'])) {
+ $server_sort_array = $_SESSION['server_sort_array'];
+}
+if (isset($_SESSION['msgs'])) {
+ $msgs = $_SESSION['msgs'];
+}
+if (isset($_SESSION['msort'])) {
+ $msort = $_SESSION['msort'];
+}
+if (isset($_POST['move_id'])) {
+ $move_id = $_POST['move_id'];
+}
+if (isset($_SESSION['lastTargetMailbox'])) {
+ $lastTargetMailbox = $_SESSION['lastTargetMailbox'];
+}
+if (isset($_SESSION['messages'])) {
+ $messages = $_SESSION['messages'];
+} else {
+ $messages = array();
+}
+
+
+
+/* end of get globals */
+global $uid_support, $sqimap_capabilities;
+
+if (isset($mailbox)) {
+ $mailbox = urldecode( $mailbox );
+}
+
+$imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0);
+$mbx_response = sqimap_mailbox_select($imapConnection, $mailbox, false, false, true);
+
+
+/**
+ * $message contains all information about the message
+ * including header and body
+ */
+
+$uidvalidity = $mbx_response['UIDVALIDITY'];
+
+if (!isset($messages[$uidvalidity])) {
+ $messages[$uidvalidity] = array();
+}
+if (!isset($messages[$uidvalidity][$passed_id]) || !$uid_support) {
+ $message = sqimap_get_message($imapConnection, $passed_id, $mailbox);
+ $FirstTimeSee = !$message->is_seen;
+ $message->is_seen = true;
+ $messages[$uidvalidity][$passed_id] = $message;
+} else {
+// $message = sqimap_get_message($imapConnection, $passed_id, $mailbox);
+ $message = $messages[$uidvalidity][$passed_id];
+ $FirstTimeSee = !$message->is_seen;
+}
+
+if (isset($passed_ent_id) && $passed_ent_id) {
+ $message = $message->getEntity($passed_ent_id);
+ if ($message->type0 != 'message' && $message->type1 != 'rfc822') {
+ $message = $message->parent;
+ }
+ $read = sqimap_run_command ($imapConnection, "FETCH $passed_id BODY[$passed_ent_id.HEADER]", true, $response, $msg, $uid_support);
+ $rfc822_header = new Rfc822Header();
+ $rfc822_header->parseHeader($read);
+ $message->rfc822_header = $rfc822_header;
+} else {
+ $passed_ent_id = 0;
+}
+$header = $message->header;
+
+do_hook('html_top');
+
+/****************************************/
+/* Block for handling incoming url vars */
+/****************************************/
+
+if (isset($sendreceipt)) {
+ if ( !$message->is_mdnsent ) {
+ if (isset($identity) ) {
+ $final_recipient = getPref($data_dir, $username, 'email_address' . '0', '' );
+ } else {
+ $final_recipient = getPref($data_dir, $username, 'email_address', '' );
+ }
+
+ $final_recipient = trim($final_recipient);
+ if ($final_recipient == '' ) {
+ $final_recipient = getPref($data_dir, $username, 'email_address', '' );
+ }
+ $supportMDN = ServerMDNSupport($mbx_response["PERMANENTFLAGS"]);
+ if ( SendMDN( $mailbox, $passed_id, $final_recipient, $message, $imapConnection ) > 0 && $supportMDN ) {
+ ToggleMDNflag( true, $imapConnection, $mailbox, $passed_id, $uid_support);
+ $message->is_mdnsent = true;
+ $messages[$uidvalidity][$passed_id]=$message;
+ }
+ ClearAttachments();
+ }
+}
+/***********************************************/
+/* End of block for handling incoming url vars */
+/***********************************************/
+
+$msgs[$passed_id]['FLAG_SEEN'] = true;
+
+$messagebody = '';
+do_hook('read_body_top');
+if ($show_html_default == 1) {
+ $ent_ar = $message->findDisplayEntity(array());
+} else {
+ $ent_ar = $message->findDisplayEntity(array(), array('text/plain'));
+}
+$cnt = count($ent_ar);
+for ($i = 0; $i < $cnt; $i++) {
+ $messagebody .= formatBody($imapConnection, $message, $color, $wrap_at, $ent_ar[$i], $passed_id, $mailbox);
+ if ($i != $cnt-1) {
+ $messagebody .= '<hr noshade size=1>';
+ }
+}
+
+displayPageHeader($color, $mailbox);
+formatMenuBar($mailbox, $passed_id, $passed_ent_id, $message, $mbx_response);
+formatEnvheader($mailbox, $passed_id, $passed_ent_id, $message, $color, $FirstTimeSee);
+echo '<table width="100%" cellpadding="0" cellspacing="0" align="center" border="0">';
+echo ' <tr><td>';
+echo ' <table width="100%" cellpadding="1" cellspacing="0" align="center" border="0" bgcolor="'.$color[9].'">';
+echo ' <tr><td>';
+echo ' <table width="100%" cellpadding="3" cellspacing="0" align="center" border="0">';
+echo ' <tr bgcolor="'.$color[4].'"><td>';
+echo ' <table cellpadding="1" cellspacing="5" align="left" border="0">';
+echo ' <tr>' . html_tag( 'td', '<br>'. $messagebody."\n", 'left')
+ . '</tr>';
+echo ' </table>';
+echo ' </td></tr>';
+echo ' </table></td></tr>';
+echo ' </table>';
+echo ' </td></tr>';
+
+echo '<TR><TD HEIGHT="5" COLSPAN="2" BGCOLOR="'.
+ $color[4].'"></TD></TR>'."\n";
+
+$attachmentsdisplay = formatAttachments($message,$ent_ar,$mailbox, $passed_id);
+if ($attachmentsdisplay) {
+ echo ' <tr><td>';
+ echo ' <table width="100%" cellpadding="1" cellspacing="0" align="center"'.' border="0" bgcolor="'.$color[9].'">';
+ echo ' <tr><td>';
+ echo ' <table width="100%" cellpadding="0" cellspacing="0" align="center" border="0" bgcolor="'.$color[4].'">';
+ echo ' <tr><td ALIGN="left" bgcolor="'.$color[9].'">';
+ echo ' <b>' . _("Attachments") . ':</b>';
+ echo ' </td></tr>';
+ echo ' <tr><td>';
+ echo ' <table width="100%" cellpadding="2" cellspacing="2" align="center"'.' border="0" bgcolor="'.$color[0].'"><tr><td>';
+ echo $attachmentsdisplay;
+ echo ' </td></tr></table>';
+ echo ' </td></tr></table>';
+ echo ' </td></tr></table>';
+ echo ' </td></tr>';
+ echo '<TR><TD HEIGHT="5" COLSPAN="2" BGCOLOR="'.
+ $color[4].'"></TD></TR>';
+}
+echo '</table>';
+
+/* show attached images inline -- if pref'fed so */
+if (($attachment_common_show_images) &&
+ is_array($attachment_common_show_images_list)) {
+ foreach ($attachment_common_show_images_list as $img) {
+ $imgurl = SM_PATH . 'src/download.php' .
+ '?' .
+ 'passed_id=' . urlencode($img['passed_id']) .
+ '&mailbox=' . urlencode($mailbox) .
+ '&ent_id=' . urlencode($img['ent_id']) .
+ '&absolute_dl=true';
+
+ echo html_tag( 'table', "\n" .
+ html_tag( 'tr', "\n" .
+ html_tag( 'td', '<img src="' . $imgurl . '">' ."\n", 'left'
+ )
+ ) ,
+ 'center', '', 'cellspacing=0 border="0" cellpadding="2"');