internal/model/mailbox.go (view raw)
1package model
2
3import "github.com/emersion/go-imap/v2"
4
5type DefaultMailbox struct {
6 Name MailboxName
7 SpecialUse imap.MailboxAttr
8}
9
10type MailboxName string
11
12var (
13 MailboxINBOX = MailboxName("INBOX")
14 MailboxGatekeeper = MailboxName("Gatekeeper")
15 MailboxArchive = MailboxName("Archive")
16 MailboxDrafts = MailboxName("Drafts")
17 MailboxJunk = MailboxName("Junk")
18 MailboxSent = MailboxName("Sent")
19 MailboxTrash = MailboxName("Trash")
20)
21
22func DefaultMailboxes() []DefaultMailbox {
23 return []DefaultMailbox{
24 {Name: MailboxINBOX},
25 {Name: MailboxGatekeeper},
26 {Name: MailboxArchive, SpecialUse: imap.MailboxAttrArchive},
27 {Name: MailboxDrafts, SpecialUse: imap.MailboxAttrDrafts},
28 {Name: MailboxJunk, SpecialUse: imap.MailboxAttrJunk},
29 {Name: MailboxSent, SpecialUse: imap.MailboxAttrSent},
30 {Name: MailboxTrash, SpecialUse: imap.MailboxAttrTrash},
31 }
32}
33
34type Mailbox struct {
35 ID int
36 Name string
37 SpecialUse *string
38 UIDValidity uint32
39 UIDNext int
40 HighestModSeq int
41
42 NumMessages uint32
43 NumUnseen int
44 NumDeleted int
45 Size int64
46 IsSubscribed bool
47}