aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/base/imap.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/base/imap.go')
-rw-r--r--plugins/base/imap.go21
1 files changed, 9 insertions, 12 deletions
diff --git a/plugins/base/imap.go b/plugins/base/imap.go
index e9636e3..ec4947d 100644
--- a/plugins/base/imap.go
+++ b/plugins/base/imap.go
@@ -448,7 +448,8 @@ func listMessages(conn *imapclient.Client, mboxName string, page, messagesPerPag
return nil, total, nil
}
- seqSet := imap.SeqSetRange(uint32(from), uint32(to))
+ var seqSet imap.SeqSet
+ seqSet.AddRange(uint32(from), uint32(to))
options := imap.FetchOptions{
Flags: true,
Envelope: true,
@@ -486,7 +487,7 @@ func searchMessages(conn *imapclient.Client, mboxName, query string, page, messa
if err != nil {
return nil, 0, fmt.Errorf("SEARCH failed: %v", err)
}
- nums = data.AllNums()
+ nums = data.AllSeqNums()
} else {
sortOptions := &imapclient.SortOptions{
SearchCriteria: searchCriteria,
@@ -541,13 +542,11 @@ func searchMessages(conn *imapclient.Client, mboxName, query string, page, messa
return msgs, total, nil
}
-func getMessagePart(conn *imapclient.Client, mboxName string, uid uint32, partPath []int) (*IMAPMessage, *message.Entity, error) {
+func getMessagePart(conn *imapclient.Client, mboxName string, uid imap.UID, partPath []int) (*IMAPMessage, *message.Entity, error) {
if err := ensureMailboxSelected(conn, mboxName); err != nil {
return nil, nil, err
}
- seqSet := imap.SeqSetNum(uid)
-
headerItem := &imap.FetchItemBodySection{
Peek: true,
Part: partPath,
@@ -577,7 +576,7 @@ func getMessagePart(conn *imapclient.Client, mboxName string, uid uint32, partPa
}
// TODO: stream attachments
- msgs, err := conn.UIDFetch(seqSet, &options).Collect()
+ msgs, err := conn.Fetch(imap.UIDSetNum(uid), &options).Collect()
if err != nil {
return nil, nil, fmt.Errorf("failed to fetch message: %v", err)
} else if len(msgs) == 0 {
@@ -610,13 +609,12 @@ func getMessagePart(conn *imapclient.Client, mboxName string, uid uint32, partPa
return &IMAPMessage{msg, mboxName}, part, nil
}
-func markMessageAnswered(conn *imapclient.Client, mboxName string, uid uint32) error {
+func markMessageAnswered(conn *imapclient.Client, mboxName string, uid imap.UID) error {
if err := ensureMailboxSelected(conn, mboxName); err != nil {
return err
}
- seqSet := imap.SeqSetNum(uid)
- return conn.UIDStore(seqSet, &imap.StoreFlags{
+ return conn.Store(imap.UIDSetNum(uid), &imap.StoreFlags{
Op: imap.StoreFlagsAdd,
Silent: true,
Flags: []imap.Flag{imap.FlagAnswered},
@@ -655,13 +653,12 @@ func appendMessage(c *imapclient.Client, msg *OutgoingMessage, mboxType mailboxT
return mbox, nil
}
-func deleteMessage(conn *imapclient.Client, mboxName string, uid uint32) error {
+func deleteMessage(conn *imapclient.Client, mboxName string, uid imap.UID) error {
if err := ensureMailboxSelected(conn, mboxName); err != nil {
return err
}
- seqSet := imap.SeqSetNum(uid)
- err := conn.UIDStore(seqSet, &imap.StoreFlags{
+ err := conn.Store(imap.UIDSetNum(uid), &imap.StoreFlags{
Op: imap.StoreFlagsAdd,
Silent: true,
Flags: []imap.Flag{imap.FlagDeleted},