0

我有 3 个数据文件:

  1. Outlook 数据文件(为空)
  2. Gmail 数据文件(来自我的 gmail pop3)
  3. 雅虎数据文件(来自我的雅虎 imap)

我可以使用以下代码访问 Outlook 数据文件收件箱(它总是空的,我不知道如何自动从我的 google 和 yahoo 帐户移动到我的 Outlook 数据文件):

Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)this.Application.
     ActiveExplorer().Session.GetDefaultFolder
     (Outlook.OlDefaultFolders.olFolderInbox);

我有两个问题:

  1. 如何让我的 gmail 和 yahoo 帐户自动移动到我的 Outlook 数据文件?
  2. 如何编码以访问我的 gmail 和 yahoo 帐户中的收件箱?

我已尝试使用此功能返回我的 MAPIFolder:

public Outlook.MAPIFolder GetInbox(string userName)
    {
        Outlook.Application oOutlook = new Outlook.Application();
        Outlook.NameSpace oNs = oOutlook.GetNamespace("MAPI");
        Outlook.Recipient oRep = oNs.CreateRecipient(userName);
        Outlook.MAPIFolder inbox = oNs.GetSharedDefaultFolder(oRep, Outlook.OlDefaultFolders.olFolderInbox);
        return inbox;
    }

但它没有用。请帮我..

4

1 回答 1

0

我不确定我是否理解您的第一个问题,您想将所有数据文件加入主 Outlook 数据文件吗?

关于您的第二个问题,Outlook 数据文件由 API 中的存储表示,如果您在 Session 对象上调用 GetDefaultFolder,您将始终获得默认存储的默认文件夹(Outlook 数据文件的收件箱)。

您可以列出所有存储文件并在它们上使用 GetDefaultFolder 来检索每个存储/数据文件的收件箱文件夹:

Outlook.Stores stores = this.Appliction.Session.Stores;
foreach( Store store in stores )
{
   Outlook.Folder inboxOfStore = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

   //Do stuff with your inbox folder.. Check store properties for infomation on which data file this store represents
}

有关更多信息,请参阅文档:

http://msdn.microsoft.com/en-us/library/office/bb176405%28v=office.12%29.aspx

于 2013-08-21T11:09:48.203 回答