C# -- 在 Outlook 中读取来自非默认帐户的电子邮件

标签 c# api email outlook

我正在尝试使用 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/

相关文章:

c# - 如何管理 C 和 C# 之间的缓冲区

C# Covariance puzzle,我遇到过

security - 没有数据库实现的 Grails 安全性

php - 未使用的 mysql 连接会减慢脚本速度吗?

go - SendGrid SMTP 电子邮件不会发送到 Go 中的抄送和密件抄送地址

c# - LINQ:跳过并获取重复项

javascript - 使用 ionic 1 实现谷歌地图方向

email - 获取已发送电子邮件的 SOST 数据库 ID

PHP - 从电子邮件下载 WAV

c# - 合并/标记 SQL 命令的方法