【问题标题】:C# -- Read Emails from non default accounts in OutlookC# -- 从 Outlook 中的非默认帐户读取电子邮件
【发布时间】:2016-01-22 03:43:12
【问题描述】:

我正在尝试使用 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);
        }
    }
}

【问题讨论】:

    标签: c# api email outlook


    【解决方案1】:

    你可以获取每个文件夹的Store,然后调用GetDefaultFolder方法获取对应store的收件箱文件夹,如下:

    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
        }                
    }
    

    【讨论】:

      猜你喜欢
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 2020-06-30
      • 2020-05-30
      • 2019-12-11
      相关资源
      最近更新 更多