Outlook 2010遍历会话相关的所用邮件

时间:2022-08-30 14:26:28

这个例子使用C#,Visual Studio 2010开发,是基于Outlook 2010的应用。当你选中一个邮件然后在Ribbon上点击按钮后所用与这个会话相关的邮件都会被打开。

主要代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Tools.Ribbon;
using Outlook = Microsoft.Office.Interop.Outlook;

namespace GetConversationMails
{
    public partial class Ribbon1
    {
        private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
        {

        }

        private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            Outlook.Application objApplication = Globals.ThisAddIn.Application;
            Outlook.Explorer objExplorer = objApplication.ActiveExplorer();
            for (int i = 0; i <= objExplorer.Selection.Count; i++)
            {
                if (i > 0)
                {
                    var obj = objExplorer.Selection[i];
                    if (obj is Outlook.MailItem)
                    {
                        Outlook.MailItem objMailItem = (Outlook.MailItem)obj;
                        Outlook.Conversation objConversation = objMailItem.GetConversation();
                        Outlook.SimpleItems objRootItems = objConversation.GetRootItems();
                        objExplorer.ClearSelection();
                        foreach (var Element1 in objRootItems)
                        {
                            if (Element1 is Outlook.MailItem)
                            {
                                Outlook.MailItem objRootItem = (Outlook.MailItem)Element1;
                                //对根邮件的处理。这里的示例为在Inspector中显示。
                                objRootItem.Display();
                                Outlook.SimpleItems objChildrenItem = objConversation.GetChildren(objRootItem);
                                foreach (var Element2 in objChildrenItem)
                                {
                                    if (Element2 is Outlook.MailItem)
                                    {
                                        Outlook.MailItem objChildItem = (Outlook.MailItem)Element2;
                                        //对子邮件的处理,这里的示例为在Inspector中显示。
                                        objChildItem.Display();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
相关资源下载: http://download.csdn.net/detail/tx_officedev/3853114