- }
- }
- for ($i=0; $i < count($second); $i = $j) {
- if (isset($first[$i]))
- $f = $first[$i];
- if (isset($second[$i]))
- $s = nl2br($second[$i]);
- $j = $i + 1;
- while ($first[$j] == '' && $j < count($first)) {
- $s .= ' ' . nl2br($second[$j]);
- $j++;
- }
- parseEmail($s);
- if (isset($f)) echo "<nobr><tt><b>$f</b>$s</tt></nobr>";
- }
- echo "</td></tr></table>\n";
- echo '</body></html>';
- sqimap_logout($imapConnection);
- exit;
- }
-
- // given an IMAP message id number, this will look it up in the cached and sorted msgs array and
- // return the index. used for finding the next and previous messages
-
- // returns the index of the next valid message from the array
- function findNextMessage() {
- global $msort, $currentArrayIndex, $msgs, $sort;
-
- if ($sort == 6) {
- if ($currentArrayIndex != 1) {
- return $currentArrayIndex - 1;
- }
- } else {
- for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) {
- if ($currentArrayIndex == $msgs[$key]['ID']) {
- next($msort);
- $key = key($msort);
- if (isset($key))
- return $msgs[$key]['ID'];
- }
- }
- }
- 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, $data_dir, $username;
- if ($sort == 6) {
- $numMessages = sqimap_get_num_messages($imapConnection, $mailbox);
- if ($currentArrayIndex != $numMessages) {
- return $currentArrayIndex + 1;
- }
- } else {
- for (reset($msort); ($key = key($msort)), (isset($key)); next($msort)) {
- if ($currentArrayIndex == $msgs[$key]['ID']) {
- prev($msort);
- $key = key($msort);
- if (isset($key))
- return $msgs[$key]['ID'];
- }
- }
- }
- return -1;
- }
-
- if (isset($msgs)) {
- $currentArrayIndex = $passed_id;
- /*
- for ($i=0; $i < count($msgs); $i++) {
- if ($msgs[$i]["ID"] == $passed_id) {
- $currentArrayIndex = $i;
- break;
- }
- }
- */
- } else {
- $currentArrayIndex = -1;
- }
-
- for ($i = 0; $i < count($msgs); $i++) {
- if ($msgs[$i]['ID'] == $passed_id)
- $msgs[$i]['FLAG_SEEN'] = true;
- }
-
- // $message contains all information about the message
- // including header and body
- $message = sqimap_get_message($imapConnection, $passed_id, $mailbox);
-
- /** translate the subject and mailbox into url-able text **/
- $url_subj = urlencode(trim($message->header->subject));
- $urlMailbox = urlencode($mailbox);
- $url_replyto = '';
- if (isset($message->header->replyto))
- $url_replyto = 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.
- // This is somewhat messy, so I'll explain:
- // 1) Take all addresses (from, to, cc) (avoid nasty join errors here)
- $url_replytoall_extra_addrs = array_merge(array($message->header->from),
- $message->header->to, $message->header->cc);
-
- // 2) Make one big string out of them
- $url_replytoall_extra_addrs = join(';', $url_replytoall_extra_addrs);
-
- // 3) Parse that into an array of addresses
- $url_replytoall_extra_addrs = parseAddrs($url_replytoall_extra_addrs);
-
- // 4) Make them unique -- weed out duplicates
- // (Coded for PHP 4.0.0)
- $url_replytoall_extra_addrs =
- array_keys(array_flip($url_replytoall_extra_addrs));
-
- // 5) Remove the addresses we'll be sending the message 'to'
- $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)
- {
- 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)
- {
- for ($i = 1; $i < $idents; $i ++)
- {
- RemoveAddress($url_replytoall_extra_addrs,
- getPref($data_dir, $username, 'email_address' .
- $i));
- }
- }
- }
-
- // 7) Smoosh back into one nice line
- $url_replytoallcc = getLineOfAddrs($url_replytoall_extra_addrs);
-
- // 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 **/
- $echo_more = _("more");
- $echo_less = _("less");
-
- if (!isset($show_more_cc)) $show_more_cc = false;
-
- /** FORMAT THE TO STRING **/
- $i = 0;
- $to_string = '';
- $to_ary = $message->header->to;
- while ($i < count($to_ary)) {
- $to_ary[$i] = htmlspecialchars(decodeHeader($to_ary[$i]));
-
- if ($to_string)
- $to_string = "$to_string<BR>$to_ary[$i]";
- else
- $to_string = "$to_ary[$i]";
-
- $i++;
- if (count($to_ary) > 1) {
- if ($show_more == false) {
+ }
+ }
+ for ($i=0; $i < count($second); $i = $j) {
+ if (isset($first[$i])) {
+ $f = $first[$i];
+ }
+ if (isset($second[$i])) {
+ $s = nl2br($second[$i]);
+ }
+ $j = $i + 1;
+ while (($first[$j] == '') && ($j < count($first))) {
+ $s .= ' ' . nl2br($second[$j]);
+ $j++;
+ }
+ parseEmail($s);
+ if (isset($f)) echo "<nobr><tt><b>$f</b>$s</tt></nobr>";
+ }
+ echo "</td></tr></table>\n";
+ echo '</body></html>';
+ sqimap_logout($imapConnection);
+ exit;
+}
+
+if (isset($msgs)) {
+ $currentArrayIndex = $passed_id;
+} else {
+ $currentArrayIndex = -1;
+}
+
+for ($i = 0; $i < count($msgs); $i++) {
+ if ($msgs[$i]['ID'] == $passed_id) {
+ $msgs[$i]['FLAG_SEEN'] = true;
+ }
+}
+
+// $message contains all information about the message
+// including header and body
+$message = sqimap_get_message($imapConnection, $passed_id, $mailbox);
+
+/** translate the subject and mailbox into url-able text **/
+$url_subj = urlencode(trim($message->header->subject));
+$urlMailbox = urlencode($mailbox);
+$url_replyto = '';
+if (isset($message->header->replyto)) {
+ $url_replyto = 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.
+// This is somewhat messy, so I'll explain:
+// 1) Take all addresses (from, to, cc) (avoid nasty join errors here)
+$url_replytoall_extra_addrs = array_merge(
+ array($message->header->from),
+ $message->header->to,
+ $message->header->cc
+);
+
+// 2) Make one big string out of them
+$url_replytoall_extra_addrs = join(';', $url_replytoall_extra_addrs);
+
+// 3) Parse that into an array of addresses
+$url_replytoall_extra_addrs = parseAddrs($url_replytoall_extra_addrs);
+
+// 4) Make them unique -- weed out duplicates
+// (Coded for PHP 4.0.0)
+$url_replytoall_extra_addrs =
+ array_keys(array_flip($url_replytoall_extra_addrs));
+
+// 5) Remove the addresses we'll be sending the message 'to'
+$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) {
+ 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 is turned off
+if (!$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) {
+ for ($i = 1; $i < $idents; $i ++) {
+ $cur_email_address = getPref($data_dir, $username, 'email_address' . $i);
+ RemoveAddress($url_replytoall_extra_addrs, $cur_email_address);
+ }
+ }
+}
+
+// 7) Smoosh back into one nice line
+$url_replytoallcc = getLineOfAddrs($url_replytoall_extra_addrs);
+
+// 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 **/
+$echo_more = _("more");
+$echo_less = _("less");
+
+if (!isset($show_more_cc)) $show_more_cc = false;
+
+/** FORMAT THE TO STRING **/
+$i = 0;
+$to_string = '';
+$to_ary = $message->header->to;
+while ($i < count($to_ary)) {
+ $to_ary[$i] = htmlspecialchars(decodeHeader($to_ary[$i]));
+
+ if ($to_string) {
+ $to_string = "$to_string<BR>$to_ary[$i]";
+ } else {
+ $to_string = "$to_ary[$i]";
+ }
+
+ $i++;
+ if (count($to_ary) > 1) {
+ if ($show_more == false) {