From c1fbae6e0f5981d4d60f5b614d5d195ae5cde4a8 Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Thu, 23 Apr 2020 23:39:20 +0200 Subject: A mailbox may exist, but not be writable when \Noselect is set --- internal/imap/connection.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'internal/imap/connection.go') diff --git a/internal/imap/connection.go b/internal/imap/connection.go index e0360bd..88b1496 100644 --- a/internal/imap/connection.go +++ b/internal/imap/connection.go @@ -9,6 +9,7 @@ import ( imapClient "github.com/emersion/go-imap/client" "github.com/Necoro/feed2imap-go/internal/log" + "github.com/Necoro/feed2imap-go/internal/util" ) type connection struct { @@ -109,10 +110,10 @@ func (conn *connection) ensureFolder(folder Folder) error { panic("Delimiters do not match") } - switch found { - case 0: + switch { + case found == 0 || (found == 1 && util.StrContains(mbox.Attributes, imap.NoSelectAttr)): return conn.createFolder(folder.str) - case 1: + case found == 1: conn.mailboxes.add(mbox) return nil default: -- cgit v1.2.3-54-g00ecf