X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fread_body.php;h=95368c107000c8b5b5b1acea2ff97c20768e9887;hb=541506f3bbe3cfc966221c55c35e50e9bda6f181;hp=266086a60441b6743ee13df15c91c5a2a8cb24a4;hpb=e5a067194eb800d0a1ad5e0a46a61dd63f9119a0;p=squirrelmail.git diff --git a/src/read_body.php b/src/read_body.php index 266086a6..95368c10 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -11,24 +11,12 @@ ** $Id$ **/ - session_start(); - - if (!isset($strings_php)) - include('../functions/strings.php'); - if (!isset($config_php)) - include('../config/config.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'); - if (!isset($url_parser_php)) - include('../functions/url_parser.php'); - - include('../src/load_prefs.php'); + include("../src/validate.php"); + include('../functions/imap.php'); + include('../functions/mime.php'); + include('../functions/date.php'); + include('../functions/url_parser.php'); + $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); sqimap_mailbox_select($imapConnection, $mailbox); do_hook('html_top'); @@ -52,7 +40,7 @@ echo ''; $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; @@ -102,7 +90,7 @@ } } else { for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) { - if ($currentArrayIndex == $msgs[$key]['ID') { + if ($currentArrayIndex == $msgs[$key]['ID']) { next($msort); $key = key($msort); if (isset($key)) @@ -113,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) { @@ -160,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. @@ -183,22 +185,42 @@ 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); + + // What do we reply to -- text only, if possible $ent_num = findDisplayEntity($message); /** TEXT STRINGS DEFINITIONS **/ @@ -284,9 +306,9 @@ do_hook('read_body_top'); echo '
'; - echo '' . "\n"; + echo '
' . "\n"; echo ' '; echo ' '; echo '
'; - echo ' '; + echo '
'; echo ' '; echo '
'; echo ' '; @@ -342,51 +364,54 @@ echo '
'; echo '
'; - echo ' ' . "\n"; + echo '
' . "\n"; echo ' ' . "\n"; /** subject **/ - echo " \n"; + echo ' "; - } else { - echo " "; + echo "" . _("View full header") . "\n"; + } else { + echo "" . _("View full header") . "\n"; } - echo ' ' ."\n"; + do_hook("read_body_header_right"); + echo '' . "\n"; + 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 (isset($cc_string)) { echo " \n"; - echo " ' . "\n"; echo ' ' . "\n"; @@ -395,7 +420,7 @@ echo '
\n"; + echo " \n"; echo _("Subject:"); - echo " \n"; + echo " \n"; echo " $subject \n"; echo " ' . "\n"; if ($where && $what) { // Got here from a search - echo " " . _("View full header") . "  " . _("View full header") . "  
' . "\n"; + echo ' ' . "\n"; echo _("From:"); - echo ' ' . "\n"; + echo ' ' . "\n"; echo " $from_name \n"; echo '
' . "\n"; + echo ' ' . "\n"; echo _("Date:"); - echo " \n"; + echo " \n"; echo " $dateString \n"; echo '
\n"; + echo " \n"; echo _("To:"); - echo ' ' . "\n"; + echo ' ' . "\n"; echo " $to_string \n"; echo '
\n"; + echo " \n"; echo ' Cc:' . "\n"; - echo " \n"; + echo " \n"; echo " $cc_string \n"; echo '
'; echo '
'; - echo "\n"; + echo "
\n"; echo "
\n"; echo '
'; @@ -404,7 +429,8 @@ echo $body; - echo '' . "\n"; + echo '
'; + echo '' . "\n"; echo " "; echo '
 
' . "\n";