- if (!empty($flags_str)) {
- $flags_str = preg_replace('/[\\\"]/', '', $flags_str);
- $flags_a = explode(' ', $flags_str);
-
- if (is_array($flags_a)) {
- foreach($flags_a as $flag) {
- $flag = strtoupper($flag);
- if ($flag == 'SEEN') {
- $result[$id]->seen = true;
- } else if ($flag == 'DELETED') {
- $result[$id]->deleted = true;
- } else if ($flag == 'RECENT') {
- $result[$id]->recent = true;
- } else if ($flag == 'ANSWERED') {
- $result[$id]->answered = true;
- } else if ($flag == '$FORWARDED') {
- $result[$id]->forwarded = true;
- } else if ($flag == 'DRAFT') {
- $result[$id]->is_draft = true;
- } else if ($flag == '$MDNSENT') {
- $result[$id]->mdn_sent = true;
- } else if ($flag == 'FLAGGED') {
- $result[$id]->flagged = true;
- }
+ if (!empty($flags_a)) {
+ foreach ($flags_a as $flag) {
+ $flag = str_replace('\\', '', $flag);
+ $result[$id]->flags[] = $flag;
+
+ switch (strtoupper($flag)) {
+ case 'SEEN':
+ $result[$id]->seen = true;
+ break;
+ case 'DELETED':
+ $result[$id]->deleted = true;
+ break;
+ case 'ANSWERED':
+ $result[$id]->answered = true;
+ break;
+ case '$FORWARDED':
+ $result[$id]->forwarded = true;
+ break;
+ case '$MDNSENT':
+ $result[$id]->mdn_sent = true;
+ break;
+ case 'FLAGGED':
+ $result[$id]->flagged = true;
+ break;