c# - 使用 C# 读取 Outlook 邮件

标签 c# outlook office-interop

我正在使用以下代码尝试连接到我的 Outlook 邮件。现在,我一定是做错了什么,因为我试图获取收件箱邮件,但我总是收到 0 封邮件(如果不是这种情况)。这是我的代码

 Microsoft.Office.Interop.Outlook.NameSpace nameSpace = application.GetNamespace("MAPI");
 nameSpace.Logon("", "", Missing.Value, Missing.Value);

 inboxFolder = nameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
 Console.WriteLine("Folders: {0}", inboxFolder.Folders.Count);

我的 Outlook 配置文件中有多个电子邮件帐户。当我写下以下内容时

Console.WriteLine("Accounts: {0}",nameSpace.Accounts.Count);
Console.WriteLine("Name: {0}", nameSpace.Accounts[1].DisplayName);

帐户总数正确显示,我真正想访问的帐户名称也正确显示(索引 1)。现在,问题是我需要访问该帐户中的特定文件夹。我该怎么做?

最佳答案

我可以解决这个问题!其实很容易。以下是我如何访问所需的文件夹:

// my-account@myserver.com is the name of my account
// Unsent mails is the name of the folder I wanted to access
inboxFolder = nameSpace.Folders["my-account@myserver.com"].Folders["Unsent mails"];

foreach (Microsoft.Office.Interop.Outlook.MailItem mailItem in inboxFolder.Items)
{
    if (mailItem.UnRead) // I only process the mail if unread
    {
        Console.WriteLine("Accounts: {0}", mailItem.Body);
    }    
}

关于c# - 使用 C# 读取 Outlook 邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8368380/

相关文章:

c# - 向下拉列表中的列表添加空白选择项

c# - 比较包含很多对象的两个列表

c# - 我如何将一个简单的表达式附加到 IQueryable

html - 在 Outlook 中打开 .OFT 的超链接

javascript - 从JS发送参数到asp.net

c# - 如何使用 EPPlus 在同一张图表上绘制 2 种图表

c - 如何以编程方式将 S/MIME 证书应用于 Outlook(Windows、C/C++)

html - 如何获得 Calibri 和指定的表格显示宽度?

c# - 如何创建 Excel 行并将其插入 Excel 范围?

c# - 获取 Excel 行范围的最快方法