added "cc" and "body" for searching
[squirrelmail.git] / functions / imap_messages.php
index 8e4be59fa766abaa1a6667b1258faddd56ea1243..e3e23b2b4cdb180e82002aed4e458d8e32a9f2ed 100755 (executable)
    /******************************************************************************
     **  Returns some general header information -- FROM, DATE, and SUBJECT
     ******************************************************************************/
-       class small_header {
-               var $from, $subject, $date;
-       }
+   class small_header {
+      var $from, $subject, $date, $to, $priority, $message_id;
+   }
         
    function sqimap_get_small_header ($imap_stream, $id, $sent) {
-      fputs ($imap_stream, "a001 FETCH $id BODY.PEEK[HEADER.FIELDS (Date To From Subject)]\r\n");
+      fputs ($imap_stream, "a001 FETCH $id BODY.PEEK[HEADER.FIELDS (Date To From Cc Subject Message-Id X-Priority)]\r\n");
       $read = sqimap_read_data ($imap_stream, "a001", true, $response, $message);
 
       $subject = _("(no subject)");
       $from = _("Unknown Sender");
-               $g = 0;
+      $priority = "0";
+      $messageid = "<>";
+
+      $g = 0;
       for ($i = 0; $i < count($read); $i++) {
-                       if ($sent == true) {
-               if (eregi ("^to:", $read[$i])) {
-               $from = sqimap_find_displayable_name(substr($read[$i], 3));
-                               }       
-                       } else { 
-               if (eregi ("^from:", $read[$i])) {
-               $from = sqimap_find_displayable_name(substr($read[$i], 5));
-                               }       
-                       }
-
-         if (eregi ("^date:", $read[$i])) {
+         if (eregi ("^to:", $read[$i])) {
+            //$to = sqimap_find_displayable_name(substr($read[$i], 3));
+            $to = substr($read[$i], 3);
+             } else if (eregi ("^from:", $read[$i])) {
+            //$from = sqimap_find_displayable_name(substr($read[$i], 5));
+            $from = substr($read[$i], 5);
+             } else if (eregi ("^x-priority:", $read[$i])) {
+            $priority = trim(substr($read[$i], 11));
+         } else if (eregi ("^message-id:", $read[$i])) {
+            $messageid = trim(substr($read[$i], 11));
+         } else if (eregi ("^cc:", $read[$i])) {
+            $cc = substr($read[$i], 3);
+         } else if (eregi ("^date:", $read[$i])) {
             $date = substr($read[$i], 5);
          } else if (eregi ("^subject:", $read[$i])) {
             $subject = htmlspecialchars(eregi_replace ("^subject: ", "", $read[$i]));
-            if (strlen(Chop($subject)) == 0)
+            if (trim($subject) == "")
                $subject = _("(no subject)");
          }
-               }       
+      }
 
-               $header = new small_header;
-               $header->from = $from;
-               $header->date = $date;
-               $header->subject = $subject;
+      $header = new small_header;
+      if ($sent == true)
+         $header->from = $to;
+      else   
+         $header->from = $from;
 
-               return $header;
+      $header->date = $date;
+      $header->subject = $subject;
+      $header->to = $to;
+      $header->priority = $priority;
+      $header->message_id = $messageid;
+      $header->cc = $cc;
+
+      return $header;
    }
 
    /******************************************************************************
     **  the documentation folder for more information about this array.
     ******************************************************************************/
    function sqimap_get_message ($imap_stream, $id, $mailbox) {
-      
       $header = sqimap_get_message_header($imap_stream, $id, $mailbox);
       $msg = sqimap_get_message_body($imap_stream, &$header);
       return $msg;
       //fputs ($imap_stream, "a001 FETCH $id:$id BODY[TEXT]\r\n");
       //$read = sqimap_read_data ($imap_stream, "a001", true, $response, $message);
        
+      /*
       $i = 0;
       $j = 0;
       while ($i < count($read)-1) {
          }
          $i++;
       }
-      return decodeMime($body, &$header);
+      */
+      return decodeMime($imap_stream, $body, &$header);
    }