我使用的是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).发布于 2017-07-31 22:20:53
我能够回答我的问题。ImapClient.GetFolders正在返回命名空间中的所有文件夹,包括缺少的INBOX.INBOX.dfgdfg
发布于 2017-08-01 05:16:15
如果您想要递归,则需要对GetSubfolders()返回的每个文件夹调用GetSubfolders()。
使用*的问题是,在某些IMAP服务器上(cough UW.IMAPd cough),如果用户有符号链接,服务器响应将永远不会结束,因为它不能正确检测符号链接递归。
https://stackoverflow.com/questions/45418362
复制相似问题