+
+ // 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);
+ }
+
+ fputs ($imap_stream, "a003 FETCH $id RFC822.SIZE\r\n");
+ $read = sqimap_read_data($imap_stream, "a003", true, $r, $m);
+ preg_match("/([0-9]+)\)\s*$/i", $read[0], $regs);
+ $size = $regs[1];
+
+ $header = new small_header;
+ if ($sent == true)
+ $header->from = (trim($to) != '')? $to : _('(only Cc/Bcc)');
+ else
+ $header->from = $from;
+
+ $header->date = $date;
+ $header->subject = $subject;
+ $header->to = $to;
+ $header->priority = $priority;
+ $header->message_id = $messageid;
+ $header->cc = $cc;
+ $header->size = $size;
+ $header->type0 = $type[0];
+ $header->type1 = $type[1];
+
+ return $header;