X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fread_body.php;h=95368c107000c8b5b5b1acea2ff97c20768e9887;hb=541506f3bbe3cfc966221c55c35e50e9bda6f181;hp=5ef37a8fb00c4ae75dead6dc830a4718b2915d7e;hpb=d7e6f0c41e924cdef30df0a9de649f2315a8f146;p=squirrelmail.git diff --git a/src/read_body.php b/src/read_body.php index 5ef37a8f..95368c10 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -12,12 +12,10 @@ **/ 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'); $imapConnection = sqimap_login($username, $key, $imapServerAddress, $imapPort, 0); sqimap_mailbox_select($imapConnection, $mailbox); @@ -42,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; @@ -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); @@ -337,17 +367,12 @@ echo ' ' . "\n"; echo ' ' . "\n"; /** subject **/ - echo " \n"; - echo '
\n"; + echo " \n"; echo _("Subject:"); - echo " \n"; + echo " \n"; echo " $subject \n"; echo " ' . "\n"; + echo ' ' . "\n"; if ($where && $what) { // Got here from a search echo "" . _("View full header") . "\n";