- if (isset($date)) {
- $date = str_replace(' ', ' ', $date);
- $tmpdate = explode(' ', trim($date));
- } else {
- $tmpdate = $date = array('', '', '', '', '', '');
- }
- if ($uid_support) {
- $msgi ="$unique_id";
- $messages[$msgi]['ID'] = $unique_id;
- } else {
- $msgi = "$id";
- $messages[$msgi]['ID'] = $id;
- }
- $messages[$msgi]['TIME_STAMP'] = getTimeStamp($tmpdate);
- $messages[$msgi]['DATE_STRING'] = getDateString($messages[$msgi]['TIME_STAMP']);
- $messages[$msgi]['FROM'] = $from; //parseAddress($from);
- $messages[$msgi]['SUBJECT'] = $subject;
-// if (handleAsSent($mailbox)) {
- $messages[$msgi]['TO'] = $to; //parseAddress($to);
-// }
- $messages[$msgi]['PRIORITY'] = $priority;
- $messages[$msgi]['CC'] = $cc; //parseAddress($cc);
- $messages[$msgi]['SIZE'] = $size;
- $messages[$msgi]['TYPE0'] = $type[0];
- $messages[$msgi]['FLAG_DELETED'] = $flag_deleted;
- $messages[$msgi]['FLAG_ANSWERED'] = $flag_answered;
- $messages[$msgi]['FLAG_SEEN'] = $flag_seen;
- $messages[$msgi]['FLAG_FLAGGED'] = $flag_flagged;
-
- /* non server sort stuff */
- if (!$allow_server_sort) {
- $from = parseAddress($from);
- if ($from[0][1]) {
- $from = decodeHeader($from[0][1]);
- } else {
- $from = $from[0][0];
- }
- $messages[$msgi]['FROM-SORT'] = $from;
- $subject_sort = strtolower(decodeHeader($subject));
- if (preg_match("/^(vedr|sv|re|aw):\s*(.*)$/si", $subject_sort, $matches)){
- $messages[$msgi]['SUBJECT-SORT'] = $matches[2];
- } else {
- $messages[$msgi]['SUBJECT-SORT'] = $subject_sort;
- }
+ if (!empty($unique_id)) {
+ $msgi = "$unique_id";
+ $aMsg['UID'] = $unique_id;
+ } else {
+ $msgi = '';
+ }
+ $aMessageList[$msgi] = $aMsg;
+ }
+ return $aMessageList;
+}
+
+/**
+ * Work in process
+ * @private
+ * @author Marc Groot Koerkamp
+ */
+function sqimap_parse_envelope($read, &$i, &$msg) {
+ $arg_no = 0;
+ $arg_a = array();
+ ++$i;
+ for ($cnt = strlen($read); ($i < $cnt) && ($read{$i} != ')'); ++$i) {
+ $char = strtoupper($read{$i});
+ switch ($char) {
+ case '{':
+ case '"':
+ $arg_a[] = parseString($read,$i);
+ ++$arg_no;
+ break;
+ case 'N':
+ /* probably NIL argument */
+ if (strtoupper(substr($read, $i, 3)) == 'NIL') {
+ $arg_a[] = '';
+ ++$arg_no;
+ $i += 2;
+ }
+ break;
+ case '(':
+ /* Address structure (with group support)
+ * Note: Group support is useless on SMTP connections
+ * because the protocol doesn't support it
+ */
+ $addr_a = array();
+ $group = '';
+ $a=0;
+ for (; $i < $cnt && $read{$i} != ')'; ++$i) {
+ if ($read{$i} == '(') {
+ $addr = sqimap_parse_address($read, $i);
+ if (($addr[3] == '') && ($addr[2] != '')) {
+ /* start of group */
+ $group = $addr[2];
+ $group_addr = $addr;
+ $j = $a;
+ } else if ($group && ($addr[3] == '') && ($addr[2] == '')) {
+ /* end group */
+ if ($a == ($j+1)) { /* no group members */
+ $group_addr[4] = $group;
+ $group_addr[2] = '';
+ $group_addr[0] = "$group: Undisclosed recipients;";
+ $addr_a[] = $group_addr;
+ $group ='';
+ }
+ } else {
+ $addr[4] = $group;
+ $addr_a[] = $addr;
+ }
+ ++$a;
+ }
+ }
+ $arg_a[] = $addr_a;
+ break;
+ default: break;