fix(orchestrator): reuse src connection to list folders instead of extra TestLogin

This commit is contained in:
2026-07-01 18:10:52 +07:00
parent 8c871d9d26
commit 2def11a870
2 changed files with 16 additions and 1 deletions
+15
View File
@@ -2,8 +2,23 @@ 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 {
+1 -1
View File
@@ -174,7 +174,7 @@ func (o *Orchestrator) runAccount(ctx context.Context, task store.Task, runID in
return o.accountFailed(ctx, task.ID, a.ID, err)
}
folders, err := imapx.TestLogin(ctx, srcEP, a.SrcLogin, string(srcPass))
folders, err := imapx.ListFolders(src)
if err != nil {
return o.accountFailed(ctx, task.ID, a.ID, err)
}