package imapx import ( "context" "github.com/emersion/go-imap/v2/imapclient" ) // ListFolders returns the mailbox names visible on an already-connected, logged-in client. func ListFolders(c *imapclient.Client) ([]string, error) { mboxes, err := c.List("", "*", nil).Collect() if err != nil { return nil, err } names := make([]string, 0, len(mboxes)) for _, m := range mboxes { names = append(names, m.Mailbox) } return names, nil } func TestLogin(ctx context.Context, ep Endpoint, login, pass string) ([]string, error) { c, err := Connect(ctx, ep) if err != nil { return nil, err } defer func() { _ = c.Logout().Wait() }() if err := c.Login(login, pass).Wait(); err != nil { return nil, err } mboxes, err := c.List("", "*", nil).Collect() if err != nil { return nil, err } names := make([]string, 0, len(mboxes)) for _, m := range mboxes { names = append(names, m.Mailbox) } return names, nil }