以编程方式获取Outlook信息

时间:2009-08-10 08:44:08

标签: c# outlook

我有一个要求,我需要从名为“公共文件夹”的文件夹中获取数据,该文件夹包含讨论/会议等书房等全局信息,此文件夹位于服务器中,我可以通过Outlook访问此文件夹。如何以编程方式访问C#?

5 个答案:

答案 0 :(得分:1)

如果您只是在客户端上,请通过Outlook使用COM。 或者对Exchange 2003使用WebDav,或者查看Exchange 2007的新Web服务。

这一切都取决于您的代码执行的位置和/或Exchange的运行版本,然后再决定前往。

您只需确保应用程序作为具有Exchange权限的用户运行。

答案 1 :(得分:0)

我知道你说过C#,但是如果你愿意尝试一下,这是我过去成功使用过的Perl解决方案:

http://rasterweb.net/raster/code/src/vcalxical_pl.txt

您需要在Exchange服务器上启用IMAP,这仅适用于2003.在Exchange 2007中,日历信息不再存储在文件夹中,因此会中断。你还说你只需要获取数据,而不是修改数据。

此解决方案适用于Exchange 2007:

http://blogs.msdn.com/exchangedev/archive/2009/02/05/quick-and-dirty-unix-shell-scripting-with-ews.aspx

答案 2 :(得分:0)

Ksempac,请看这里前进的方向:

http://msdn.microsoft.com/en-us/library/ms268893(VS.80).aspx

使用Microsoft.Office.Interop.Outlook命名空间非常糟糕,但是通过谷歌搜索,你可以做一些很酷的事情。

答案 3 :(得分:0)

过去我们使用Outlook Redemption。它通过扩展MAPI工作,因此它具有Outlook提供的更多功能.Office.Interop.Outlook

还有另一个有用的工具 - Outlook Spy,允许您在运行时发现Outlook对象模型。

答案 4 :(得分:0)

我修改了代码以循环浏览子文件夹,抱歉延迟响应

using System;
using OutLook = Microsoft.Office.Interop.Outlook;

class OutlookFolders
{
    static void Main(string[] args)
    {
        OutLook.Application outlookObj = new OutLook.Application();
        GetSubFolders(outlookObj.Session.Folders);
    }
    private static void GetSubFolders(OutLook.Folders folders)
    {
        foreach (OutLook.MAPIFolder f in folders)
        {
            Console.WriteLine(f.Name);
            GetSubFolders(f.Folders);
        }
    }
}