internal/imap/mailbox.go (view raw)
1package imap
2
3import (
4 "postern/internal/model"
5
6 "github.com/emersion/go-imap/v2"
7)
8
9func getMailboxAttr(m model.Mailbox) []imap.MailboxAttr {
10 mbAttr := make([]imap.MailboxAttr, 0)
11
12 var validSpecialUse = map[imap.MailboxAttr]bool{
13 imap.MailboxAttrArchive: true,
14 imap.MailboxAttrDrafts: true,
15 imap.MailboxAttrJunk: true,
16 imap.MailboxAttrSent: true,
17 imap.MailboxAttrTrash: true,
18 }
19
20 if m.SpecialUse != nil {
21 attr := imap.MailboxAttr(*m.SpecialUse)
22 if validSpecialUse[attr] {
23 mbAttr = append(mbAttr, attr)
24 }
25 }
26
27 if m.IsSubscribed {
28 mbAttr = append(mbAttr, imap.MailboxAttrSubscribed)
29 }
30
31 return mbAttr
32}