';
$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 ' ' .
+ ' | ' .
+ ' ' .
+ ' ' . "\n" .
+ ' ' . "\n" .
/** subject **/
- echo " \n";
- echo _("Subject:");
- echo " | \n";
- echo " $subject \n";
- echo " | \n";
- echo ' ' . "\n";
+ " \n" .
+ _("Subject:") .
+ " | \n" .
+ " $subject \n" .
+ " | \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 ' | ' ."\n";
+ echo '' . "\n" .
+ ' ' ."\n" .
/** from **/
- echo ' ' . "\n";
- echo ' ' . "\n";
- echo _("From:");
- echo ' | ' . "\n";
- echo " $from_name \n";
- echo ' | ' . "\n";
- echo ' ' . "\n";
+ ' ' . "\n" .
+ ' ' . "\n" .
+ _("From:") .
+ ' | ' . "\n" .
+ " $from_name \n" .
+ ' | ' . "\n" .
+ ' ' . "\n" .
/** date **/
- echo ' ' . "\n";
- echo ' ' . "\n";
- echo _("Date:");
- echo " | \n";
- echo " $dateString \n";
- echo ' | ' . "\n";
- echo ' ' . "\n";
+ ' ' . "\n" .
+ ' ' . "\n" .
+ _("Date:") .
+ " | \n" .
+ " $dateString \n" .
+ ' | ' . "\n" .
+ ' ' . "\n" .
/** to **/
- echo " \n";
- echo " \n";
- echo _("To:");
- echo ' | ' . "\n";
- echo " $to_string \n";
- echo ' | ' . "\n";
- echo ' ' . "\n";
+ " \n" .
+ " \n" .
+ _("To:") .
+ ' | ' . "\n" .
+ " $to_string \n" .
+ ' | ' . "\n" .
+ ' ' . "\n";
/** cc **/
if (isset($cc_string)) {
- echo " \n";
- echo " \n";
- echo ' Cc:' . "\n";
- echo " | \n";
- echo " $cc_string \n";
- echo ' | ' . "\n";
- echo ' ' . "\n";
+ echo " \n" .
+ " \n" .
+ ' Cc:' . "\n" .
+ " | \n" .
+ " $cc_string \n" .
+ ' | ' . "\n" .
+ ' ' . "\n";
}
do_hook("read_body_header");
- echo ' ';
- echo ' | ';
- 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";
do_hook('read_body_bottom');
do_hook('html_bottom');
|