X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=src%2Fread_body.php;h=6f7e3c13849a1661d2f7826de80723644c3688d0;hp=a489db03f15ccace9cd1f4d521dc43dd1587372d;hb=4dea7315db37a788bb396ce27788c394e6cba224;hpb=44bf825487a478bb3e2e9a12074fc9609cf9efa9 diff --git a/src/read_body.php b/src/read_body.php index a489db03..6f7e3c13 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -11,13 +11,11 @@ ** $Id$ **/ - include("../src/validate.php"); - include('../functions/page_header.php'); - include('../functions/imap.php'); - include('../functions/mime.php'); - include('../functions/date.php'); - include('../functions/url_parser.php'); - include('../src/load_prefs.php'); + 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); @@ -25,24 +23,24 @@ displayPageHeader($color, $mailbox); if (isset($view_hdr)) { - fputs ($imapConnection, "a003 FETCH $passed_id BODY[HEADER]\r\n"); - $read = sqimap_read_data ($imapConnection, "a003", true, $a, $b); + fputs ($imapConnection, sqimap_session_id() . " FETCH $passed_id BODY[HEADER]\r\n"); + $read = sqimap_read_data ($imapConnection, sqimap_session_id(), true, $a, $b); - echo '
'; - echo '' . "\n"; - echo "
" . _("Viewing full header") . ' - '; + echo '
' . + '' . "\n" . + "
" . _("Viewing full header") . ' - '; if (isset($where) && isset($what)) { // Got here from a search echo "'; } else { echo ""; } - echo ''._("View message") . "
\n"; - echo "\n"; - echo '
'; + echo ''._("View message") . "
\n" . + "\n" . + '
'; $cnum = 0; - for ($i=1; $i < count($read)-1; $i++) { + for ($i=1; $i < count($read); $i++) { $line = htmlspecialchars($read[$i]); if (eregi("^>", $line)) { $second[$i] = $line; @@ -103,9 +101,21 @@ return -1; } + // Removes just one address from the list of addresses + function RemoveAddress(&$addr_list, $addr) { + if ($addr == '') + return; + 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, $mailbox; + global $msort, $currentArrayIndex, $sort, $msgs, $imapConnection, + $mailbox, $data_dir, $username; if ($sort == 6) { $numMessages = sqimap_get_num_messages($imapConnection, $mailbox); if ($currentArrayIndex != $numMessages) { @@ -150,9 +160,11 @@ /** translate the subject and mailbox into url-able text **/ $url_subj = urlencode(trim($message->header->subject)); $urlMailbox = urlencode($mailbox); - $url_replyto = urlencode($message->header->replyto); + $url_replyto = ''; + if (isset($message->header->replyto)) + $url_replyto = urlencode($message->header->replyto); - $url_replytoall = 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. @@ -173,19 +185,37 @@ 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); + $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) { - foreach (array_keys($url_replytoall_extra_addrs, $addr) as $key_to_delete) + RemoveAddress($url_replytoall_extra_addrs, $addr); + } + + // 6) Remove our identities from the CC list (they still can be in the + // TO list) only if $include_self_reply_all isn't set or it is ''. + if (getPref($data_dir, $username, '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) { - unset($url_replytoall_extra_addrs[$key_to_delete]); + for ($i = 1; $i < $idents; $i ++) + { + RemoveAddress($url_replytoall_extra_addrs, + getPref($data_dir, $username, 'email_address' . + $i)); + } } - } + } - // 6) Smoosh back into one nice line + // 7) Smoosh back into one nice line $url_replytoallcc = getLineOfAddrs($url_replytoall_extra_addrs); - // 7) urlencode() it + // 8) urlencode() it $url_replytoallcc = urlencode($url_replytoallcc); $dateString = getLongDateString($message->header->date); @@ -274,14 +304,13 @@ $subject = decodeHeader(htmlspecialchars($message->header->subject)); do_hook('read_body_top'); - echo '
'; - - echo '' . "\n"; - echo '
'; - echo ' '; - echo ' '; - echo ' ' . + '
'; - echo ' '; + echo '
' . + '' . "\n" . + ' '; - echo ' ' . + ' '; - echo '
' . + ' ' . + ' ' . + ' '; - echo ' '; - echo '
' . + ' '; if ($where && $what) { echo " "; } else { @@ -294,11 +323,18 @@ } else { echo " "; } - echo _("Delete"); - echo '  '; - echo ' '; - echo ' '; - echo ' ' . "\n"; + echo _("Delete") . + ' '; + if (($mailbox == $draft_folder) && ($save_as_draft)) { + echo '| '; + echo " '; + } + echo '  ' . + ' ' . + ' ' . + ' ' . "\n"; if ($where && $what) { } else { if ($currentArrayIndex == -1) { @@ -316,33 +352,33 @@ 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" . + ' ' . + ' ' . + '
' . + ' ' . + " " . + _("Forward") . + ' | ' . + " " . + _("Reply") . + ' | ' . + " " . + _("Reply All") . + '  ' . + ' ' . + '
' . + '
' . + ' ' . "\n" . + ' ' . "\n" . /** subject **/ - echo " \n"; - echo ' \n" . + ' ' . "\n"; - echo ' ' ."\n"; + echo '' . "\n" . + ' ' ."\n" . /** from **/ - echo ' ' . "\n"; - echo ' ' . "\n"; - echo ' ' . "\n"; + ' ' . "\n" . + ' ' . "\n" . + ' ' . "\n" . /** date **/ - echo ' ' . "\n"; - echo ' ' . "\n"; - echo ' ' . "\n"; + ' ' . "\n" . + ' ' . "\n" . + ' ' . "\n" . /** to **/ - echo " \n"; - echo " ' . "\n"; - echo ' ' . "\n"; + " \n" . + " ' . "\n" . + ' ' . "\n"; /** cc **/ if (isset($cc_string)) { - echo " \n"; - echo " ' . "\n"; - echo ' ' . "\n"; + echo " \n" . + " ' . "\n" . + ' ' . "\n"; } do_hook("read_body_header"); - echo '
\n"; - echo _("Subject:"); - echo " \n"; - echo " $subject \n"; - echo " ' . "\n"; + " \n" . + _("Subject:") . + " \n" . + " $subject \n" . + " ' . "\n"; if ($where && $what) { // Got here from a search echo "" . _("View full header") . "\n"; @@ -350,59 +386,58 @@ echo "" . _("View full header") . "\n"; } do_hook("read_body_header_right"); - echo '
' . "\n"; - echo _("From:"); - echo ' ' . "\n"; - echo " $from_name \n"; - echo '
' . "\n" . + _("From:") . + ' ' . "\n" . + " $from_name \n" . + '
' . "\n"; - echo _("Date:"); - echo " \n"; - echo " $dateString \n"; - echo '
' . "\n" . + _("Date:") . + " \n" . + " $dateString \n" . + '
\n"; - echo _("To:"); - echo ' ' . "\n"; - echo " $to_string \n"; - echo '
\n" . + _("To:") . + ' ' . "\n" . + " $to_string \n" . + '
\n"; - echo ' Cc:' . "\n"; - echo " \n"; - echo " $cc_string \n"; - echo '
\n" . + ' Cc:' . "\n" . + " \n" . + " $cc_string \n" . + '
'; - echo '
'; - echo "\n"; - - echo "
\n"; - echo '
'; + echo '
' . + '
'; + flush(); + echo "\n" . + "
\n" . + '
'; $body = formatBody($imapConnection, $message, $color, $wrap_at); - echo $body; - - echo '
'; - echo '' . "\n"; - echo " "; - echo '
 
' . "\n"; + echo $body . + '
' . + '' . "\n" . + " " . + '
 
' . "\n"; do_hook('read_body_bottom'); do_hook('html_bottom');