From 078a60e33af6e6013fe7b86643180e7d13aa63d0 Mon Sep 17 00:00:00 2001 From: Bobby <30593201+luciferreeves@users.noreply.github.com> Date: Tue, 23 Dec 2025 10:55:56 +0530 Subject: email utils and functions --- utils/email/folders.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 utils/email/folders.go (limited to 'utils') diff --git a/utils/email/folders.go b/utils/email/folders.go new file mode 100644 index 0000000..3acffae --- /dev/null +++ b/utils/email/folders.go @@ -0,0 +1,30 @@ +package email + +import ( + "lain/types" + + "github.com/emersion/go-imap" +) + +func FetchFolders(client *types.EmailClient) ([]types.IMAPFolder, error) { + mailboxes := make(chan *imap.MailboxInfo, 10) + done := make(chan error, 1) + + go func() { + done <- client.List("", "*", mailboxes) + }() + + var folders []types.IMAPFolder + for m := range mailboxes { + folders = append(folders, types.IMAPFolder{ + Name: m.Name, + HasChildren: hasAttribute(m.Attributes, "\\HasChildren"), + }) + } + + if err := <-done; err != nil { + return nil, err + } + + return folders, nil +} -- cgit v1.2.3