| | |
| | | $key = 'fhi0'; |
| | | $deleted = $skip_deleted ? ' FLAGS' : ''; |
| | | |
| | | if ($mode == 1) |
| | | if ($mode == 1 && $index_field == 'DATE') |
| | | $request = " FETCH $message_set (INTERNALDATE BODY.PEEK[HEADER.FIELDS (DATE)]$deleted)"; |
| | | else if ($mode == 1) |
| | | $request = " FETCH $message_set (BODY.PEEK[HEADER.FIELDS ($index_field)]$deleted)"; |
| | | else if ($mode == 2) { |
| | | if ($index_field == 'SIZE') |
| | |
| | | } |
| | | } |
| | | |
| | | if ($mode == 1) { |
| | | if (preg_match('/BODY\[HEADER\.FIELDS \("?(DATE|FROM|REPLY-TO|SENDER|TO|SUBJECT)"?\)\] (.*)/', $line, $matches)) { |
| | | $value = preg_replace(array('/^"*[a-z]+:/i', '/\s+$/sm'), array('', ''), $matches[2]); |
| | | if ($mode == 1 && $index_field == 'DATE') { |
| | | if (preg_match('/BODY\[HEADER\.FIELDS \("*DATE"*\)\] (.*)/', $line, $matches)) { |
| | | $value = preg_replace(array('/^"*[a-z]+:/i'), '', $matches[1]); |
| | | $value = trim($value); |
| | | if ($index_field == 'DATE') { |
| | | $result[$id] = iil_StrToTime($value); |
| | | } else { |
| | | $result[$id] = $value; |
| | | } |
| | | $result[$id] = iil_StrToTime($value); |
| | | } |
| | | // non-existent/empty Date: header, use INTERNALDATE |
| | | if (empty($result[$id])) { |
| | | if (preg_match('/INTERNALDATE "([^"]+)"/', $line, $matches)) |
| | | $result[$id] = iil_StrToTime($matches[1]); |
| | | else |
| | | $result[$id] = 0; |
| | | } |
| | | } else if ($mode == 1) { |
| | | if (preg_match('/BODY\[HEADER\.FIELDS \("?(FROM|REPLY-TO|SENDER|TO|SUBJECT)"?\)\] (.*)/', $line, $matches)) { |
| | | $value = preg_replace(array('/^"*[a-z]+:/i', '/\s+$/sm'), array('', ''), $matches[2]); |
| | | $result[$id] = trim($value); |
| | | } else { |
| | | $result[$id] = ''; |
| | | } |