- snprintf (buf, sizeof (buf), "APPEND %s (\\Seen) {%lu}", mbox, len);
+ snprintf (buf, sizeof (buf), "APPEND %s (%s%s%s%s%s) {%lu}", mbox,
+ msg->flags.read ? "\\Seen" : "",
+ msg->flags.read && (msg->flags.replied || msg->flags.flagged) ? " " : "",
+ msg->flags.replied ? "\\Answered" : "",
+ msg->flags.replied && msg->flags.flagged ? " " : "",
+ msg->flags.flagged ? "\\Flagged" : "",
+ (unsigned long) len);