Explorar o código

if no date is sent in the header of a message, it takes the IMAP server's
internal date for that message.

Luke Ehresman %!s(int64=25) %!d(string=hai) anos
pai
achega
7199a45025
Modificáronse 2 ficheiros con 18 adicións e 0 borrados
  1. 15 0
      functions/imap_messages.php
  2. 3 0
      functions/mailbox_display.php

+ 15 - 0
functions/imap_messages.php

@@ -77,6 +77,21 @@
          }
       }
 
+      // If there isn't a date, it takes the internal date and uses
+      // that as the normal date.
+      if (trim($date) == "") {
+         fputs ($imap_stream, "a002 FETCH $id INTERNALDATE\r\n");
+         $internal_read = sqimap_read_data ($imap_stream, "a002", true, $r, $m);
+
+         // * 22 FETCH (INTERNALDATE " 8-Sep-2000 13:17:07 -0500")
+         $date = $internal_read[0];
+         $date = eregi_replace(".*internaldate \"", "", $date);
+         $date = eregi_replace("\".*", "", $date);
+         $date_ary = explode(" ", trim($date));
+         $date_ary[0] = str_replace("-", " ", $date_ary[0]);
+         $date = implode (" ", $date_ary);
+      }
+
       $header = new small_header;
       if ($sent == true)
          $header->from = $to;

+ 3 - 0
functions/mailbox_display.php

@@ -20,6 +20,9 @@
       $senderName = sqimap_find_displayable_name($msg["FROM"]);
       $urlMailbox = urlencode($mailbox);
       $subject = trim($msg["SUBJECT"]);
+      if ($subject == "")
+         $subject = _("(no subject)");
+    
       echo "<TR>\n";
       
       if ($msg["FLAG_FLAGGED"] == true) { $flag = "<font color=$color[2]>"; $flag_end = "</font>"; }