X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fread_body.php;h=6e02591c3a6a42db8c45cf2b3e0aecd7f334102d;hb=10ff0c3db7070161d7b8280b971f26688678d9a2;hp=d73fd0e0ca524da937d0a4b3857ba37c59fced09;hpb=5bc39e3fc7064e14c4257f4c36bf22a35d056a36;p=squirrelmail.git diff --git a/src/read_body.php b/src/read_body.php index d73fd0e0..6e02591c 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -1,403 +1,666 @@ "; - echo "\n"; - echo "
" . _("Viewing full header") . " - "; - if ($where && $what) { - // Got here from a search - echo ""; - } else { - echo ""; - } - echo ""._("View message") . "
\n"; - echo "\n"; - echo "
"; - - for ($i=1; $i < count($read)-1; $i++) { - $line = htmlspecialchars($read[$i]); - if (eregi("^>", $line)) { - $second[$i] = $line; - $first[$i] = " "; - $cnum++; - } else if (eregi("^[ |\t]", $line)) { - $second[$i] = $line; - $first[$i] = ""; - } else if (eregi("^([^:]+):(.+)", $line, $regs)) { - $first[$i] = $regs[1] . ":"; - $second[$i] = $regs[2]; - $cnum++; - } else { - $second[$i] = trim($line); - $first[$i] = ""; - } - } - for ($i=0; $i < count($second); $i = $j) { - $f = $first[$i]; - $s = nl2br($second[$i]); - $j = $i + 1; - while ($first[$j] == "" && $j < count($first)) { - $s .= "    " . nl2br($second[$j]); - $j++; - } - parseEmail($s); - echo "$f$s"; - } - echo "
\n"; - echo ""; - sqimap_logout($imapConnection); - 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, $sort; - - if ($sort == 6) { - if ($currentArrayIndex != 1) { - return $currentArrayIndex - 1; - } - } else { - 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"]; + +/** + * read_body.php + * + * Copyright (c) 1999-2001 The SquirrelMail Development Team + * Licensed under the GNU GPL. For full terms see the file COPYING. + * + * This file is used for reading the msgs array and displaying + * the resulting emails in the right frame. + * + * $Id$ + / + +/*****************************************************************/ +/*** THIS FILE NEEDS TO HAVE ITS FORMATTING FIXED!!! ***/ +/*** PLEASE DO SO AND REMOVE THIS COMMENT SECTION. ***/ +/*** + Base level indent should begin at left margin, as ***/ +/*** the require_once below looks. ***/ +/*** + All identation should consist of four space blocks ***/ +/*** + Tab characters are evil. ***/ +/*** + all comments should use "slash-star ... star-slash" ***/ +/*** style -- no pound characters, no slash-slash style ***/ +/*** + FLOW CONTROL STATEMENTS (if, while, etc) SHOULD ***/ +/*** ALWAYS USE { AND } CHARACTERS!!! ***/ +/*** + Please use ' instead of ", when possible. Note " ***/ +/*** should always be used in _( ) function calls. ***/ +/*** Thank you for your help making the SM code more readable. ***/ +/*****************************************************************/ + +require_once('../src/validate.php'); +require_once('../functions/imap.php'); +require_once('../functions/mime.php'); +require_once('../functions/date.php'); +require_once('../functions/url_parser.php'); + + $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); + sqimap_mailbox_select($imapConnection, $mailbox); + do_hook('html_top'); + displayPageHeader($color, $mailbox); + + if (isset($view_hdr)) { + fputs ($imapConnection, sqimap_session_id() . " FETCH $passed_id BODY[HEADER]\r\n"); + $read = sqimap_read_data ($imapConnection, sqimap_session_id(), true, $a, $b); + + echo '
' . + '' . "\n" . + "
" . _("Viewing Full Header") . ' - '; + if (isset($where) && isset($what)) { + // Got here from a search + echo "'; + } else { + echo ""; + } + echo ''._("View message") . "
\n" . + "\n" . + '
'; + + $cnum = 0; + for ($i=1; $i < count($read); $i++) { + $line = htmlspecialchars($read[$i]); + if (eregi("^>", $line)) { + $second[$i] = $line; + $first[$i] = ' '; + $cnum++; + } else if (eregi("^[ |\t]", $line)) { + $second[$i] = $line; + $first[$i] = ''; + } else if (eregi("^([^:]+):(.+)", $line, $regs)) { + $first[$i] = $regs[1] . ':'; + $second[$i] = $regs[2]; + $cnum++; + } else { + $second[$i] = trim($line); + $first[$i] = ''; + } + } + for ($i=0; $i < count($second); $i = $j) { + if (isset($first[$i])) { + $f = $first[$i]; + } + if (isset($second[$i])) { + $s = nl2br($second[$i]); + } + $j = $i + 1; + while (($first[$j] == '') && ($j < count($first))) { + $s .= '    ' . nl2br($second[$j]); + $j++; + } + parseEmail($s); + if (isset($f)) echo "$f$s"; + } + echo "
\n"; + echo ''; + sqimap_logout($imapConnection); + 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, $sort; + $result = -1; + + if ($sort == 6) { + if ($currentArrayIndex != 1) { + $result = $currentArrayIndex - 1; + } + } else { + for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { + if ($currentArrayIndex == $msgs[$key]['ID']) { + next($msort); + $key = key($msort); + if (isset($key)) + $result = $msgs[$key]['ID']; + break; + } + } + } + return ($result); + } + + /** Removes just one address from the list of addresses. */ + function RemoveAddress(&$addr_list, $addr) { + if ($addr != '') { + foreach (array_keys($addr_list, $addr) as $key_to_delete) { + unset($addr_list[$key_to_delete]); + } + } + } + + /** returns the index of the previous message from the array. */ + function findPreviousMessage() { + global $msort, $currentArrayIndex, $sort, $msgs, $imapConnection; + global $mailbox, $data_dir, $username; + $result = -1; + + if ($sort == 6) { + $numMessages = sqimap_get_num_messages($imapConnection, $mailbox); + if ($currentArrayIndex != $numMessages) { + $result = $currentArrayIndex + 1; + } + } else { + for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { + if ($currentArrayIndex == $msgs[$key]['ID']) { + prev($msort); + $key = key($msort); + if (isset($key)) { + $result = $msgs[$key]['ID']; + break; + } + } } - } - } - return -1; - } - - // returns the index of the previous message from the array - function findPreviousMessage() { - global $msort, $currentArrayIndex, $sort, $msgs, $imapConnection, $mailbox; - if ($sort == 6) { - $numMessages = sqimap_get_num_messages($imapConnection, $mailbox); - if ($currentArrayIndex != $numMessages) { - return $currentArrayIndex + 1; - } - } else { - 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) { + } + return ($result); + } + + /** + * Displays a link to a page where the message is displayed more + * "printer friendly". + */ + function printer_friendly_link() { + global $passed_id, $mailbox, $ent_num, $color; + global $pf_subtle_link; + global $javascript_on; + + if (strlen(trim($mailbox)) < 1) { + $mailbox = 'INBOX'; + } + + $params = '?passed_ent_id=' . $ent_num; + $params .= '&mailbox=' . urlencode($mailbox); + $params .= '&passed_id=' . $passed_id; + + $print_text = _("View Printable Version"); + + if (!$pf_subtle_link) { + /* The link is large, on the bottom of the header panel. */ + $result = ' ' . "\n" . + ' ' . "\n" . + '  ' . "\n" . + ' '."\n"; + } else { + /* The link is subtle, below "view full header". */ + $result = "
\n"; + } + + /* Output the link. */ + if ($javascript_on) { + $result .= '\n" . + "$print_text\n"; + } else { + $result .= '$print_text\n"; + } + + if (!$pf_subtle_link) { + /* The link is large, on the bottom of the header panel. */ + $result .= ' ' . "\n" . + ' ' . "\n"; + } + + return ($result); + } + + /*****************************/ + /*** Main of read_boby.php ***/ + /*****************************/ + + if (isset($msgs)) { + $currentArrayIndex = $passed_id; +/*** START OF COMMENTED OUT CODE - PHILIPPE, CAN THIS BE REMOVED? + 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 = sqimap_get_message($imapConnection, $passed_id, $mailbox); - - /** translate the subject and mailbox into url-able text **/ - $url_subj = urlencode(trim(sqStripSlashes($message->header->subject))); - $urlMailbox = urlencode($mailbox); - $url_replyto = urlencode($message->header->replyto); - - $url_replytoall = urlencode($message->header->replyto); - - // If we are replying to all, then find all other addresses and - // add them to the list. Remove duplicates. - // This is somewhat messy, so I'll explain: - // 1) Take all addresses (from, to, cc) (avoid nasty join errors here) - $url_replytoall_extra_addrs = array_merge(array($message->header->from), - $message->header->to, $message->header->cc); - - // 2) Make one big string out of them - $url_replytoall_extra_addrs = join(';', $url_replytoall_extra_addrs); + } + } +*** END OF COMMENTED OUT CODE */ + } 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 = sqimap_get_message($imapConnection, $passed_id, $mailbox); + + /** translate the subject and mailbox into url-able text **/ + $url_subj = urlencode(trim($message->header->subject)); + $urlMailbox = urlencode($mailbox); + $url_replyto = ''; + if (isset($message->header->replyto)) { + $url_replyto = urlencode($message->header->replyto); + } + + $url_replytoall = $url_replyto; + + // If we are replying to all, then find all other addresses and + // add them to the list. Remove duplicates. + // This is somewhat messy, so I'll explain: + // 1) Take all addresses (from, to, cc) (avoid nasty join errors here) + $url_replytoall_extra_addrs = array_merge( + array($message->header->from), + $message->header->to, + $message->header->cc + ); + + // 2) Make one big string out of them + $url_replytoall_extra_addrs = join(';', $url_replytoall_extra_addrs); - // 3) Parse that into an array of addresses - $url_replytoall_extra_addrs = parseAddrs($url_replytoall_extra_addrs); + // 3) Parse that into an array of addresses + $url_replytoall_extra_addrs = parseAddrs($url_replytoall_extra_addrs); - // 4) Make them unique -- weed out duplicates - $url_replytoall_extra_addrs = array_unique($url_replytoall_extra_addrs); + // 4) Make them unique -- weed out duplicates + // (Coded for PHP 4.0.0) + $url_replytoall_extra_addrs = + array_keys(array_flip($url_replytoall_extra_addrs)); - // 5) Remove the addresses we'll be sending the message 'to' - $url_replytoall_avoid_addrs = parseAddrs($message->header->replyto); - foreach ($url_replytoall_avoid_addrs as $addr) - { - foreach (array_keys($url_replytoall_extra_addrs, $addr) as $key_to_delete) - { - unset($url_replytoall_extra_addrs[$key_to_delete]); - } - } + // 5) Remove the addresses we'll be sending the message 'to' + $url_replytoall_avoid_addrs = ''; + if (isset($message->header->replyto)) { + $url_replytoall_avoid_addrs = $message->header->replyto; + } + + $url_replytoall_avoid_addrs = parseAddrs($url_replytoall_avoid_addrs); + foreach ($url_replytoall_avoid_addrs as $addr) { + RemoveAddress($url_replytoall_extra_addrs, $addr); + } - // 6) Smoosh back into one nice line - $url_replytoallcc = getLineOfAddrs($url_replytoall_extra_addrs); + // 6) Remove our identities from the CC list (they still can be in the + // TO list) only if $include_self_reply_all is turned off + if (!$include_self_reply_all) { + RemoveAddress($url_replytoall_extra_addrs, + getPref($data_dir, $username, 'email_address')); + $idents = getPref($data_dir, $username, 'identities'); + if ($idents != '' && $idents > 1) { + for ($i = 1; $i < $idents; $i ++) { + $cur_email_address = getPref($data_dir, $username, 'email_address' . $i); + RemoveAddress($url_replytoall_extra_addrs, $cur_email_address); + } + } + } - // 7) urlencode() it - $url_replytoallcc = urlencode($url_replytoallcc); - - $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; - while ($i < count($to_ary)) { - $to_ary[$i] = htmlspecialchars(decodeHeader($to_ary[$i])); - - if ($to_string) - $to_string = "$to_string
$to_ary[$i]"; - else - $to_string = "$to_ary[$i]"; - - $i++; - if (count($to_ary) > 1) { - if ($show_more == false) { - if ($i == 1) { - if ($where && $what) { - // from a search - $to_string = "$to_string ($echo_more)"; - } else { - $to_string = "$to_string ($echo_more)"; - } - $i = count($to_ary); + // 7) Smoosh back into one nice line + $url_replytoallcc = getLineOfAddrs($url_replytoall_extra_addrs); + + // 8) urlencode() it + $url_replytoallcc = urlencode($url_replytoallcc); + + $dateString = getLongDateString($message->header->date); + + // What do we reply to -- text only, if possible + $ent_num = findDisplayEntity($message); + + /** TEXT STRINGS DEFINITIONS **/ + $echo_more = _("more"); + $echo_less = _("less"); + + if (!isset($show_more_cc)) $show_more_cc = false; + + /** FORMAT THE TO STRING **/ + $i = 0; + $to_string = ''; + $to_ary = $message->header->to; + while ($i < count($to_ary)) { + $to_ary[$i] = htmlspecialchars(decodeHeader($to_ary[$i])); + + if ($to_string) { + $to_string = "$to_string
$to_ary[$i]"; + } else { + $to_string = "$to_ary[$i]"; + } + + $i++; + if (count($to_ary) > 1) { + if ($show_more == false) { + if ($i == 1) { + /* From a search... */ + if (isset($where) && isset($what)) { + $to_string = "$to_string ($echo_more)"; + } else { + $to_string = "$to_string ($echo_more)"; + } + $i = count($to_ary); + } + } else if ($i == 1) { + /* From a search... */ + if (isset($where) && isset($what)) { + $to_string = "$to_string ($echo_less)"; + } else { + $to_string = "$to_string ($echo_less)"; + } } - } else if ($i == 1) { - if ($where && $what) { - // from a search - $to_string = "$to_string ($echo_less)"; + } + } + + /** FORMAT THE CC STRING **/ + $i = 0; + if (isset ($message->header->cc[0]) && trim($message->header->cc[0])) { + $cc_string = ""; + $cc_ary = $message->header->cc; + while ($i < count(decodeHeader($cc_ary))) { + $cc_ary[$i] = htmlspecialchars($cc_ary[$i]); + if ($cc_string) { + $cc_string = "$cc_string
$cc_ary[$i]"; } else { - $to_string = "$to_string ($echo_less)"; + $cc_string = "$cc_ary[$i]"; } - } - } - } - - /** FORMAT THE CC STRING **/ - $i = 0; - $cc_string = ""; - $cc_ary = $message->header->cc; - while ($i < count(decodeHeader($cc_ary))) { - $cc_ary[$i] = htmlspecialchars($cc_ary[$i]); - if ($cc_string) - $cc_string = "$cc_string
$cc_ary[$i]"; - else - $cc_string = "$cc_ary[$i]"; - - $i++; - if (count($cc_ary) > 1) { - if ($show_more_cc == false) { - if ($i == 1) { - if ($where && $what) { - // from a search - $cc_string = "$cc_string ($echo_more)"; - } else { - $cc_string = "$cc_string ($echo_more)"; - } - $i = count($cc_ary); + + $i++; + if (count($cc_ary) > 1) { + if ($show_more_cc == false) { + if ($i == 1) { + /* From a search... */ + if (isset($where) && isset($what)) { + $cc_string = "$cc_string ($echo_more)"; + } else { + $cc_string = "$cc_string ($echo_more)"; + } + $i = count($cc_ary); + } + } else if ($i == 1) { + /* From a search... */ + if (isset($where) && isset($what)) { + $cc_string = "$cc_string ($echo_less)"; + } else { + $cc_string = "$cc_string ($echo_less)"; + } + } } - } else if ($i == 1) { - if ($where && $what) { - // from a search - $cc_string = "$cc_string ($echo_less)"; + } + } + + /** FORMAT THE BCC STRING **/ + $i = 0; + if (isset ($message->header->bcc[0]) && trim($message->header->bcc[0])){ + $bcc_string = ""; + $bcc_ary = $message->header->bcc; + while ($i < count(decodeHeader($bcc_ary))) { + $bcc_ary[$i] = htmlspecialchars($bcc_ary[$i]); + if ($bcc_string) { + $bcc_string = "$bcc_string
$bcc_ary[$i]"; } else { - $cc_string = "$cc_string ($echo_less)"; - } - } - } - } - - /** make sure everything will display in HTML format **/ - $from_name = decodeHeader(htmlspecialchars($message->header->from)); - $subject = decodeHeader(htmlspecialchars($message->header->subject)); - - do_hook("read_body_top"); - echo "
"; - - echo "\n"; - echo " "; - echo " "; - echo "
"; - echo " "; - echo " "; - echo " "; - echo " "; - echo "
"; - echo " "; - if ($where && $what) { - echo " "; - } else { - echo " "; - } - echo _("Message List"); - echo " | "; - if ($where && $what) { - echo " "; - } else { - echo " "; - } - echo _("Delete"); - echo "  "; - echo " "; - echo " "; - echo " \n"; - if ($where && $what) { - } else { - 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"; - /** subject **/ - echo " \n"; - if ($where && $what) { - // Got here from a search - echo " "; - } else { - 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) { - echo " \n"; - echo " \n"; - echo " \n"; - } - echo "
\n"; - echo _("Subject:"); - echo " \n"; - echo " $subject \n"; - echo " " . _("View full header") . "  " . _("View full header") . "  
\n"; - echo _("From:"); - echo " \n"; - echo " $from_name \n"; - echo "
\n"; - echo _("Date:"); - echo " \n"; - echo " $dateString \n"; - echo "
\n"; - echo _("To:"); - echo " \n"; - echo " $to_string \n"; - echo "
\n"; - echo " Cc:\n"; - echo " \n"; - echo " $cc_string \n"; - echo "
"; - echo "
"; - echo "\n"; - - echo "
\n"; - echo "
"; - - $body = formatBody($imapConnection, $message, $color, $wrap_at); + $bcc_string = "$bcc_ary[$i]"; + } - echo $body; - - echo "\n"; - echo " "; - echo "
 
\n"; + $i++; + if (count($bcc_ary) > 1) { + if ($show_more_cc == false) { + if ($i == 1) { + /* From a search... */ + if (isset($where) && isset($what)) { + $bcc_string = "$bcc_string ($echo_more)"; + } else { + $bcc_string = "$bcc_string ($echo_more)"; + } + $i = count($bcc_ary); + } + } else if ($i == 1) { + /* From a search... */ + if (isset($where) && isset($what)) { + $bcc_string = "$bcc_string ($echo_less)"; + } else { + $bcc_string = "$bcc_string ($echo_less)"; + } + } + } + } + } + + if ($default_use_priority) { + switch(substr($message->header->priority,0,1)) { + /* First, check for a higher then normal priority. */ + case "1": + case "2": $priority_string = _("High"); break; + + /* Second, check for a normal priority. */ + case "3": $priority_string = _("Normal"); break; + + /* Last, check for a lower then normal priority. */ + case "4": + case "5": $priority_string = _("Low"); break; + } + } + + /** make sure everything will display in HTML format **/ + $from_name = decodeHeader(htmlspecialchars($message->header->from)); + $subject = decodeHeader(htmlspecialchars($message->header->subject)); + + do_hook('read_body_top'); + echo '
' . + '' . "\n" . + ' ' . + ' ' . + '
' . "\n" . + ' ' . "\n" . + ' ' . "\n" . + ' ' . "\n" . + ' ' . + ' ' . + '
' . "\n" . + ' ' . "\n"; + if ($where && $what) { + echo " "; + } else { + echo " "; + } + echo _("Message List"); + echo ' | '; + if ($where && $what) { + echo " '; + } else { + echo " "; + } + echo _("Delete") . ' '; + if (($mailbox == $draft_folder) && ($save_as_draft)) { + echo '| '; + echo " "; + echo _("Resume Draft") . ''; + } + + echo '  ' . + ' ' . "\n" . + ' ' . "\n" . + ' ' . "\n"; + + if ($where && $what) { + } else { + 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" . + ' ' . + ' ' . + " " . + _("Forward") . + ' | ' . + " " . + _("Reply") . + ' | ' . + " " . + _("Reply All") . + '  ' . + ' ' . + '
' . + '
' . + ' ' . "\n" . + ' ' . "\n"; + + /** subject **/ + echo " \n" . + ' ' . "\n" . + ' ' ."\n"; + + /** from **/ + echo ' ' . "\n" . + ' ' . "\n" . + ' ' . "\n"; + /** date **/ + echo ' ' . "\n" . + ' ' . "\n" . + ' ' . "\n"; + + /** to **/ + echo " \n" . + " ' . "\n" . + ' ' . "\n"; + /** cc **/ + if (isset($cc_string)) { + echo " \n" . + " ' . "\n" . + ' ' . "\n"; + } + + /** bcc **/ + if (isset($bcc_string)) { + echo " \n" . + " ' . "\n" . + ' ' . "\n"; + } + if ($default_use_priority) { + if (isset($priority_string)) { + echo " \n" . + " " . "\n" . + " " . "\n"; + } + } + + if ($show_xmailer_default) { + fputs ($imapConnection, sqimap_session_id() . + " FETCH $passed_id BODY.PEEK[HEADER.FIELDS (X-Mailer User-Agent)]\r\n"); + $read = sqimap_read_data ($imapConnection, sqimap_session_id(), true, + $response, $readmessage); + $mailer = substr($read[1], strpos($read[1], " ")); + if (trim($mailer)) { + echo " \n" . + " " . "\n" . + " " . "\n"; + } + } + + /* Output the printer friendly link if we are not in subtle mode. */ + if (!$pf_subtle_link) { + echo printer_friendly_link(true); + } + + do_hook("read_body_header"); + echo '
\n" . + _("Subject:") . + " \n" . + " $subject \n" . + " ' . "\n"; + + /* From a search... */ + if ($where && $what) { + echo "" . _("View Full Header") . "\n"; + } else { + echo "" . _("View Full Header") . "\n"; + } + + /* Output the printer friendly link if we are in subtle mode. */ + if ($pf_subtle_link) { + echo printer_friendly_link(true); + } + + do_hook("read_body_header_right"); + echo '
' . "\n" . + _("From:") . + ' ' . "\n" . + " $from_name \n" . + '
' . "\n" . + _("Date:") . + " \n" . + " $dateString \n" . + '
\n" . + _("To:") . + ' ' . "\n" . + " $to_string \n" . + '
\n" . + ' Cc:' . "\n" . + " \n" . + " $cc_string \n" . + '
\n" . + ' Bcc:' . "\n" . + " \n" . + " $bcc_string \n" . + '
\n" . + " "._("Priority").": \n". + " \n" . + " $priority_string \n" . + "
\n" . + " "._("Mailer").": \n". + " \n" . + " $mailer \n" . + "
' . + '
'; + flush(); + echo "\n" . + "
\n" . + '
'; + + $body = formatBody($imapConnection, $message, $color, $wrap_at); + + echo $body . + '
' . + '' . "\n" . + " " . + '
 
' . "\n"; + + /* show attached images inline -- if pref'fed so */ + if (($attachment_common_show_images) and + is_array($attachment_common_show_images_list)) { + foreach ($attachment_common_show_images_list as $img) { + echo "\n" . + " \n" . + " \n" . + " \n" . + "
\n" . + ' ' . "\n" . + "
\n"; + } + } - do_hook("read_body_bottom"); - do_hook("html_bottom"); - sqimap_logout($imapConnection); + do_hook('read_body_bottom'); + do_hook('html_bottom'); + sqimap_logout($imapConnection); ?>