diff options
Diffstat (limited to 'worker/imap')
-rw-r--r-- | worker/imap/flags.go | 9 | ||||
-rw-r--r-- | worker/imap/worker.go | 4 |
2 files changed, 6 insertions, 7 deletions
diff --git a/worker/imap/flags.go b/worker/imap/flags.go index 26250866..aef10191 100644 --- a/worker/imap/flags.go +++ b/worker/imap/flags.go @@ -76,12 +76,11 @@ func (imapw *IMAPWorker) handleAnsweredMessages(msg *types.AnsweredMessages) { }) } -func (imapw *IMAPWorker) handleReadMessages(msg *types.ReadMessages) { +func (imapw *IMAPWorker) handleFlagMessages(msg *types.FlagMessages) { + flags := []interface{}{flagToImap[msg.Flag]} item := imap.FormatFlagsOp(imap.AddFlags, true) - flags := []interface{}{imap.SeenFlag} - if !msg.Read { + if !msg.Enable { item = imap.FormatFlagsOp(imap.RemoveFlags, true) - flags = []interface{}{imap.SeenFlag} } uids := toSeqSet(msg.Uids) emitErr := func(err error) { @@ -99,7 +98,7 @@ func (imapw *IMAPWorker) handleReadMessages(msg *types.ReadMessages) { }, func(_msg types.WorkerMessage) { switch m := _msg.(type) { case *types.Error: - err := fmt.Errorf("handleReadMessages: %v", m.Error) + err := fmt.Errorf("handleFlagMessages: %v", m.Error) imapw.worker.Logger.Printf("could not fetch headers: %s", err) emitErr(err) case *types.Done: diff --git a/worker/imap/worker.go b/worker/imap/worker.go index a43ac49e..0be51d71 100644 --- a/worker/imap/worker.go +++ b/worker/imap/worker.go @@ -173,8 +173,8 @@ func (w *IMAPWorker) handleMessage(msg types.WorkerMessage) error { w.handleFetchFullMessages(msg) case *types.DeleteMessages: w.handleDeleteMessages(msg) - case *types.ReadMessages: - w.handleReadMessages(msg) + case *types.FlagMessages: + w.handleFlagMessages(msg) case *types.AnsweredMessages: w.handleAnsweredMessages(msg) case *types.CopyMessages: |