如何在outlook(c#)中访问我的yahoo或gmail帐户?

时间:2013-05-16 02:36:01

标签: c# email outlook add-in mapi

我有3个数据文件:

  1. Outlook数据文件(为空)
  2. Gmail数据文件(来自我的gmail pop3)
  3. Yahoo数据文件(来自我的yahoo imap)
  4. 我可以访问Outlook数据文件收件箱(它总是空的,我不知道如何自动从我的google和yahoo帐户移动到我的Outlook数据文件) 这段代码:

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

    我有两个问题:

    1. 如何让我的gmail和yahoo帐户自动转移到我的Outlook数据文件?
    2. 如何编码以访问我的Gmail和yahoo帐户中的收件箱?
    3. 我已经尝试过这个函数来返回我的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;
          }
      

      但它没有用。请帮帮我..

1 个答案:

答案 0 :(得分: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