Removed more warnings
[squirrelmail.git] / src / read_body.php
index ee8ebebc6d1e222acc62a211328c9f5f03c6ba2b..95368c107000c8b5b5b1acea2ff97c20768e9887 100644 (file)
    **/
 
    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);
       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) {
    /** 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.
       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);