3

会話履歴フォルダーから会話を選択し、それをフォルダーに保存するボタンをクリックできるOutlookプラグインの作成を検討しています。会話履歴フォルダを選択し、C#経由で検索を実行し、会話を選択する方法について、誰かがポインタを持っていますか?

4

1 に答える 1

0
    public static List<Outlook.MAPIFolder> GetFolders()
    {

        List<Outlook.MAPIFolder> _list = new List<Outlook.MAPIFolder>();

        Outlook.MAPIFolder root = OutlookApplication.Session.DefaultStore.GetRootFolder();


        foreach (Outlook.MAPIFolder folder in root.Folders)
        {
            _list.Add(folder);
        }

        return _list;
    }

    public static Outlook.MAPIFolder GetFolderByEntryId(string entryId)
    {
        List<Outlook.MAPIFolder> folders = GetFolders();
        return folders.Where(x => x.EntryID == entryId).FirstOrDefault();
    }

    public static Outlook.MAPIFolder GetFolderByName(string folderName)
    {
        List<Outlook.MAPIFolder> folders = GetFolders();
        return folders.Where(x => x.Name == folderName).FirstOrDefault();
    }

    public static List<Outlook.MailItem> GetSelectedItem()
    {
        List<Outlook.MailItem> _list = new List<Outlook.MailItem>();

        Outlook.Selection outlookSelection = OutlookApplication.ActiveExplorer().Selection;

        for (int i = 1; i < outlookSelection.Count; i++)
        {
            Outlook.MailItem mailItem = (Outlook.MailItem)outlookSelection[i];

            _list.Add(mailItem);
        }

        return _list;
    }

    public static List<Outlook.MailItem> GetMailItems(string FolderName)
    {
        List<Outlook.MailItem> _list = new List<Outlook.MailItem>();

        Outlook.MAPIFolder theFolder = OutlookApplication.Session.GetFolderFromID(GetFolderByName(FolderName).EntryID);

        foreach (Object item in theFolder.Items)
        {
            Outlook.MailItem mailItem = (Outlook.MailItem)item;

            if (mailItem != null)
            {
                _list.Add(mailItem);
            }
        }

        return _list;

    }
于 2012-05-08T13:29:51.557 に答える