【问题标题】:How to get folder by path in multiple Accounts Outlook c#如何在多个帐户Outlook c#中按路径获取文件夹
【发布时间】:2013-02-07 11:19:27
【问题描述】:

我在 Outlook 中添加了 2 个帐户,两个单独的 pst 文件。您将通过下图获得清晰的想法:

首先我提示用户从 Outlook 中选择要阅读的文件夹,附上图片以便更好地理解:

最后我有一个列表中的文件夹路径,与图像中的相同。

现在我只想从这些特定路径读取电子邮件并向它们发送回复或删除它们,那么我该怎么做?我如何根据路径读取文件夹 n 这样我就可以获取与之关联的帐户所以我也可以使用该帐户发送电子邮件。

【问题讨论】:

  • 你的意思是你有一个strings 的文件夹路径列表吗?我猜你从某个地方得到这些文件夹路径。您不能从该列表中获取 Folder 对象吗?
  • 我将路径作为字符串,我从 Outlook 获取所有文件夹和子文件夹并将其放在选中列表框中,该用户选择一些并保存路径。现在我想从它的路径中取回文件夹。关于文件夹对象,我仍然必须使用路径来获取它,所以现在或之前它是相同的。
  • 我做到了,稍后会发布答案

标签: c# winforms visual-studio-2010 outlook


【解决方案1】:

使用以下代码循环遍历所有文件夹,然后将路径与列表中的路径匹配。

代码:

        OutLook.Application oApp = new OutLook.Application();
        OutLook.NameSpace oNS = (OutLook.NameSpace)oApp.GetNamespace("MAPI");
        oNS.Logon(Missing.Value, Missing.Value, false, true);

        foreach (OutLook.MAPIFolder folder in oNS.Folders)
        {
            string folderName = folder.Name;

            GetFolders(folder);

        }



   public void GetFolders(MAPIFolder folder)
    {
        if (folder.Folders.Count == 0)
        {
            string path = folder.FullFolderPath;


            if (foldersTocheck.Contains(path))
            { 
                //GET EMAILS.....
                foreach (OutLook.MailItem item in folder.Items)
                {
                    Console.WriteLine(item.SenderEmailAddress + " " + item.Subject + "\n" + item.Body);


                }
            }
        }
        else
        {
            foreach (MAPIFolder subFolder in folder.Folders)
            {
                GetFolders(subFolder);
            }
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-27
    • 2016-11-10
    • 2013-07-05
    • 2021-09-27
    • 2015-07-31
    • 2019-06-07
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多