X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fread_body.php;h=95368c107000c8b5b5b1acea2ff97c20768e9887;hb=541506f3bbe3cfc966221c55c35e50e9bda6f181;hp=2ba8d077ddf1dd4554dba43ec2a637f5cf76f398;hpb=9c6d83883620bdd2688cea59b25c3e90c67d97b2;p=squirrelmail.git diff --git a/src/read_body.php b/src/read_body.php index 2ba8d077..95368c10 100644 --- a/src/read_body.php +++ b/src/read_body.php @@ -12,14 +12,10 @@ **/ include("../src/validate.php"); - include('../functions/strings.php'); - include('../config/config.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); @@ -44,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; @@ -105,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) { @@ -152,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. @@ -175,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); @@ -278,9 +306,9 @@ do_hook('read_body_top'); echo '
'; - echo '' . "\n"; + echo '
' . "\n"; echo ' '; echo ' '; echo '
'; - echo ' '; + echo '
'; echo ' '; echo '
'; echo ' '; @@ -336,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"; @@ -389,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 '
'; @@ -399,7 +430,7 @@ echo $body; echo '
'; - echo '' . "\n"; + echo '
' . "\n"; echo " "; echo '
 
' . "\n";