diff --git a/internal/user/imap.go b/internal/user/imap.go index bf0306ad..4bedb069 100644 --- a/internal/user/imap.go +++ b/internal/user/imap.go @@ -233,9 +233,9 @@ func (conn *imapConnector) CreateMessage( } if parsed.Has("Received") { - msgFlags |= liteapi.MessageFlagReceived + msgFlags = msgFlags.Add(liteapi.MessageFlagReceived) } else { - msgFlags |= liteapi.MessageFlagSent + msgFlags = msgFlags.Add(liteapi.MessageFlagSent) } } @@ -246,7 +246,7 @@ func (conn *imapConnector) CreateMessage( } if flags.Contains(imap.FlagAnswered) { - msgFlags |= liteapi.MessageFlagReplied + msgFlags = msgFlags.Add(liteapi.MessageFlagReplied) } var ( diff --git a/internal/user/sync_build.go b/internal/user/sync_build.go index 008b1e54..b4da342c 100644 --- a/internal/user/sync_build.go +++ b/internal/user/sync_build.go @@ -81,6 +81,10 @@ func newMessageCreatedUpdate(message liteapi.MessageMetadata, literal []byte) (* flags = flags.Add(imap.FlagFlagged) } + if slices.Contains(message.LabelIDs, liteapi.DraftsLabel) { + flags = flags.Add(imap.FlagDraft) + } + imapMessage := imap.Message{ ID: imap.MessageID(message.ID), Flags: flags,