2017-07-31 24 views
0

我使用Mailkit GetSubfolders方法發出這個請求/響應服務器MailKit GetSubfolders

C: A00000005 LIST "" "INBOX.%" RETURN (SUBSCRIBED CHILDREN STATUS (UIDVALIDITY)) 
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.kkkk 
S: * STATUS INBOX.kkkk (UIDVALIDITY 1491227899) 
S: * LIST (\HasChildren \UnMarked) "." INBOX.Archive 
S: * LIST (\HasChildren \UnMarked) "." INBOX.spam 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Sent 
S: * STATUS INBOX.Sent (UIDVALIDITY 1491227490) 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Junk 
S: * STATUS INBOX.Junk (UIDVALIDITY 1491227488) 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Drafts 
S: * STATUS INBOX.Drafts (UIDVALIDITY 1491227487) 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Trash 
S: * STATUS INBOX.Trash (UIDVALIDITY 1491227603) 
S: A00000005 OK List completed (0.001 + 0.000 secs). 

但是我注意到Outlook和其他郵件客戶端顯示了我的賬戶,我與MailKit GetSubfolders獲得更多的文件夾。特別是INBOX.INBOX.dfgdfg文件夾。我執行了LIST「」「INBOX。*」(將%更改爲*),並且我看到這次服務器返回丟失的文件夾(請參見下文)。我的問題是如何使用MailKit方法到達INBOX.INBOX.dfgdfg文件夾?

C: A00000005 LIST "" "INBOX.*" RETURN (SUBSCRIBED CHILDREN STATUS (UIDVALIDITY)) 
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.kkkk 
S: * STATUS INBOX.kkkk (UIDVALIDITY 1491227899) 
S: * LIST (\HasChildren \UnMarked) "." INBOX.Archive 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Archive.000 
S: * STATUS INBOX.Archive.000 (UIDVALIDITY 1491227889) 
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.Archive.aaaaa 
S: * STATUS INBOX.Archive.aaaaa (UIDVALIDITY 1491227877) 
S: * LIST (\HasChildren \UnMarked) "." INBOX.spam 
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.spam.666 
S: * STATUS INBOX.spam.666 (UIDVALIDITY 1491227878) 
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.spam.nnhnhn 
S: * STATUS INBOX.spam.nnhnhn (UIDVALIDITY 1491227870) 
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.spam.test 
S: * STATUS INBOX.spam.test (UIDVALIDITY 1491227856) 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Sent 
S: * STATUS INBOX.Sent (UIDVALIDITY 1491227490) 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Junk 
S: * STATUS INBOX.Junk (UIDVALIDITY 1491227488) 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Drafts 
S: * STATUS INBOX.Drafts (UIDVALIDITY 1491227487) 
S: * LIST (\Subscribed \HasNoChildren \UnMarked) "." INBOX.Trash 
S: * STATUS INBOX.Trash (UIDVALIDITY 1491227603) 
S: * LIST (\HasNoChildren \UnMarked) "." INBOX.INBOX.dfgdfg 
S: * STATUS INBOX.INBOX.dfgdfg (UIDVALIDITY 1491227900) 
S: A00000005 OK List completed (0.001 + 0.000 secs). 

回答

0

我能回答我的問題。 ImapClient.GetFolders正在返回名稱空間中的所有文件夾,包括缺少的INBOX.INBOX.dfgdfg

0

如果要遞歸,則打算在GetSubfolders()返回的每個文件夾上調用GetSubfolders()

使用*的問題是,某些IMAP服務器(咳嗽 UW.IMAPd 咳嗽)上,如果用戶有符號鏈接,服務器響應將永遠不會結束,因爲它沒有正確地檢測符號鏈接遞歸。

+0

嗯......我想最好不要支持像UW.IMAPd這樣的服務器,而不是在我的應用程序中看不到的文件夾(但在其他流行的電子郵件客戶端中可見)。其他電子郵件客戶端顯示這些文件夾的事實導致我得出結論,他們使用 LIST INBOX。*而不是LIST INBOX。%,因爲我無法找到任何其他方式Dovecot報告此文件夾INBOX.INBOX.dfgdfg。 – ekalchev