我正在尝试使用 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);
}
}
}
最佳答案
您可以获得每个文件夹的 Store,然后调用 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
}
}
关于C# -- 在 Outlook 中读取来自非默认帐户的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34932547/