【问题标题】:How to select sharednamespace如何选择共享命名空间
【发布时间】:2015-11-23 08:43:11
【问题描述】:

使用 IMAP - 我们在共享 'user' 命名空间下有许多共享邮箱,带有 '.'分隔符。

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

我正在尝试在“用户”共享命名空间中打开特定邮箱/文件夹,IMAP 服务器对 SELECT 响应“否”。使用下面的评论摘录打开,收件箱工作得很好。可能是因为我无权访问“根/基本用户文件夹”,但我需要指定子文件夹,我不知道如何连接到有问题的共享邮箱。例如它会是'user.sharedmailboxA'

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

以下代码除了“NO”外,大概是当我尝试使用 Open 方法时访问被拒绝:

  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);
        }
    }
}

【问题讨论】:

    标签: c# mailkit mimekit


    【解决方案1】:

    在 IMAP 中,您不能总是选择一个文件夹。有时它具有 \NoSelect\NonExistent 属性,如果您尝试选择它们,它们都会失败并返回 NO。

    通常,您无法打开命名空间文件夹(典型的例外情况是收件箱被视为 IMAP 服务器上的命名空间,例如 Courier IMAP)。

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

    foreach (var folder in user_namespace.GetSubfolders (false)) {
        if ((folder.Attributes & (FolderAttributes.NoSelect | FolderAttributes.NonExistent)) == 0))
            folder.Open (FolderAccess.ReadOnly);
    }
    

    【讨论】:

      猜你喜欢
      • 2018-02-28
      • 2018-11-30
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多