我正在尝试使用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);
}
}
}
答案 0 :(得分: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
}
}