首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何选择shared命名空间

如何选择shared命名空间
EN

Stack Overflow用户
提问于 2015-11-23 08:43:11
回答 1查看 321关注 0票数 0

使用IMAP -我们有许多共享邮箱在共享的“用户”命名空间下有一个“.”分隔符。

我正在编写一些将这些共享邮箱迁移到Exchange服务器的软件。

我试图在“user”共享命名空间中打开一个特定的邮箱/文件夹,IMAP服务器对其响应否。使用下面的注释摘录打开收件箱,因为收件箱工作得很好。可能是因为我没有访问“root/base-user文件夹”的权限,但是我需要指定子文件夹,所以我不知道如何连接到所讨论的共享邮箱。例如,它将是'user.sharedmailboxA‘

请原谅我这里的术语,IMAP的总菜鸟!谢谢

以下代码例外于"NO",可能是在尝试使用Open方法时拒绝访问:

代码语言:javascript
运行
复制
  static void Main(string[] args)
        {
            using (var client = new ImapClient())
            {
                client.Connect("imap.c.com", 993, true);
            // Note: since we don't have an OAuth2 token, disable
            // the XOAUTH2 authentication mechanism.
            client.AuthenticationMechanisms.Remove("XOAUTH2");

            client.Authenticate("aa", "sdfdsf");

            var user_namespace = client.GetFolder(client.SharedNamespaces[0] );
            user_namespace.Open(FolderAccess.ReadOnly);


            // The Inbox folder is always available on all IMAP servers...

            //var inbox = client.Inbox;
            //inbox.Open(FolderAccess.ReadOnly);

            //Console.WriteLine("Total messages: {0}", inbox.Count);
            //Console.WriteLine("Recent messages: {0}", inbox.Recent);

            //for (int i = 0; i < inbox.Count; i++)
            //{
            //    var message = inbox.GetMessage(i);
            //    Console.WriteLine("Subject: {0}", message.Subject);
            //}

            //client.Disconnect(true);
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-23 15:12:21

在IMAP中,不能总是选择文件夹。有时,它具有\NoSelect\NonExistent属性,如果您尝试选择它们,则两者都会失败。

通常,您不能打开命名空间文件夹(典型的例外情况是,当收件箱被认为是IMAP服务器(如Courier )上的名称空间时)。

您需要做的是查询user_namespace的子文件夹并尝试选择其中一个文件夹(假设它没有FolderAttributes.NoSelectFolderAttributes.NonExistent属性):

代码语言:javascript
运行
复制
foreach (var folder in user_namespace.GetSubfolders (false)) {
    if ((folder.Attributes & (FolderAttributes.NoSelect | FolderAttributes.NonExistent)) == 0))
        folder.Open (FolderAccess.ReadOnly);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33866714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档