2016-01-21 89 views
1

我想从Outlook中使用C#(不是我的默认收件箱)中的特定文件夹和另一个收件箱中简单地阅读和打印电子邮件的内容。我发现很难在网上找到这样的例子,并且自己失败了。我知道如何打印默认帐户的电子邮件,而不是额外的。C# - 从Outlook中的非默认帐户读取电子邮件

我在这里的代码只是遍历所有收件箱的列表并打印出他们的名字。我想读的是集合中的第一个元素。我很感谢这个问题的任何帮助。谢谢。

using System; 
using System.Collections; 
using Microsoft.Office.Interop.Outlook; 

public class StorageReplies { 

    public static void Main() { 
     Application app = new Microsoft.Office.Interop.Outlook.Application(); 
     _NameSpace ns = app.GetNamespace("MAPI"); 

     Folders folders = ns.Folders; 

     foreach(MAPIFolder f in folders) { 
      Console.WriteLine(f.Name); 
     } 
    } 
} 

回答

1

你可以获取每个文件夹中存储,然后调用GetDefaultFolder方法来获得的收件箱文件夹,这样该店铺:

foreach (MAPIFolder f in folders) 
{ 
    MAPIFolder inbox_folder = f.Store.GetDefaultFolder(OlDefaultFolders.olFolderInbox); 

    foreach (MailItem item in inbox_folder.Items) 
    { 
     //Access item here 
    } 
} 

然而,不是这样做,这是有道理的通过直接循环Stores属性如下:

Stores stores = ns.Stores; 

foreach (Store store in stores) 
{ 
    MAPIFolder inbox_folder = store.GetDefaultFolder(OlDefaultFolders.olFolderInbox); 

    foreach (MailItem item in inbox_folder.Items) 
    { 
     //Access item here 
    }     
} 
+0

工作很好,非常感谢! –

+0

不客气。我很高兴能够提供帮助。 –

相关问题