|
|
@ -1650,54 +1650,6 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set, $uidfetch=false) |
|
|
|
} else { |
|
|
|
$a = explode(' ', $line); |
|
|
|
} |
|
|
|
|
|
|
|
if (!isset($result[$id]->date)) { |
|
|
|
$result[$id]->date = ''; |
|
|
|
} |
|
|
|
$result[$id]->date = trim($result[$id]->date); |
|
|
|
|
|
|
|
$before = true; |
|
|
|
|
|
|
|
if ($result[$id]->date == '') { |
|
|
|
|
|
|
|
$before = false; |
|
|
|
|
|
|
|
/* FETCH RECEIVED header */ |
|
|
|
$key = 'fh' . ($c++); |
|
|
|
$request = $key; |
|
|
|
$request .= " UID FETCH $id (BODY.PEEK[HEADER.FIELDS "; |
|
|
|
$request .= "(RECEIVED)])\r\n"; |
|
|
|
|
|
|
|
if (fputs($fp, $request)) { |
|
|
|
$_received = ''; |
|
|
|
while ($line = chop(iil_ReadLine($fp, 200))) { |
|
|
|
$line = trim($line); |
|
|
|
if (preg_match('/for <(.*)>;(.*)/', $line)) { |
|
|
|
$_received .= trim($line); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if ($_received != '') { |
|
|
|
$_received = trim(str_replace(';', '', |
|
|
|
substr($_received, strpos($_received, ';')) )); |
|
|
|
|
|
|
|
if ($_received != '') { |
|
|
|
$result[$id]->date = $_received; |
|
|
|
$result[$id]->timestamp = iil_StrToTime($_received); |
|
|
|
//trigger_error("Date: {$result[$id]->timestamp}", E_USER_WARNING); |
|
|
|
} |
|
|
|
} |
|
|
|
$result[$id]->date = trim($result[$id]->date); |
|
|
|
} |
|
|
|
/** |
|
|
|
* This is hack to display something. |
|
|
|
*/ |
|
|
|
if ($result[$id]->date == '') { |
|
|
|
$result[$id]->date = date('r'); |
|
|
|
$result[$id]->timestamp = time(); |
|
|
|
} |
|
|
|
} |
|
|
|
trigger_error("set before? {$before}, ID {$id}: {$result[$id]->date} / {$result[$id]->timestamp}", E_USER_WARNING); |
|
|
|
} |
|
|
|
} while (strcmp($a[0], $key) != 0); |
|
|
|
|
|
|
@ -1706,14 +1658,14 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set, $uidfetch=false) |
|
|
|
Sample reply line: "* 3 FETCH (UID 2417 RFC822.SIZE 2730 FLAGS (\Seen \Deleted))" |
|
|
|
*/ |
|
|
|
$command_key = 'fh' . ($c++); |
|
|
|
|
|
|
|
$request = $command_key . $prefix; |
|
|
|
$request .= " FETCH $message_set (UID RFC822.SIZE FLAGS INTERNALDATE)\r\n"; |
|
|
|
|
|
|
|
if (!fputs($fp, $request)) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
do { |
|
|
|
$line=chop(iil_ReadLine($fp, 200)); |
|
|
|
$line = chop(iil_ReadLine($fp, 200)); |
|
|
|
//$a = explode(' ', $line); |
|
|
|
//if (($line[0]=="*") && ($a[2]=="FETCH")) { |
|
|
|
if ($line[0] == '*') { |
|
|
@ -1784,13 +1736,14 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set, $uidfetch=false) |
|
|
|
} |
|
|
|
$result[$id]->internaldate = $time_str; |
|
|
|
|
|
|
|
if ($IMAP_USE_INTERNAL_DATE) { |
|
|
|
if ($IMAP_USE_INTERNAL_DATE || empty($result[$id]->date)) { |
|
|
|
//calculate timestamp |
|
|
|
$timestamp = strtotime($time_str); //return's server's time |
|
|
|
$na_timestamp = $timestamp; |
|
|
|
$timestamp -= $time_zone * 3600; //compensate for tz, get GMT |
|
|
|
|
|
|
|
$result[$id]->timestamp = $timestamp; |
|
|
|
$result[$id]->date = $time_str; |
|
|
|
} |
|
|
|
|
|
|
|
if ($conn->do_cache) { |
|
|
|