?
Solved

Programmatically creating search folders in Outlook 2007

Posted on 2010-09-13
3
Medium Priority
?
1,399 Views
Last Modified: 2012-05-10
I'm trying to programatically create a search folder in outlook 2007. I've figured out how to do it, but I can't figure out the exact filter for what I want...

I'm trying to change "sFilter" to filter on "message class" = "IPM.Note.Voice.Unity" and can't figure out what the URN would be for message class. I've tried searching, and randomly putting filter strings together to no avail. Can't find any documentation on this.

I've tried all of these filter queries:

            //string sFilter = "\"urn:schemas:mailheader:subject\" LIKE 'RE:%'";
            //string sFilter = "\"urn:schemas:messageclass\" LIKE '%IPM.Note.Voice.Unity'";
            //string sFilter = "\"urn:schemas:mailheader:message-id\" LIKE '%IPM.Note.Voice.Unity'";
            //string sFilter = "\"DAV:contentclass\" LIKE '%IPM.Note.Voice.Unity'";
            //string sFilter = "\"http://schemas.microsoft.com/exchange/outlookmessageclass\" = 'IPM.Note.Voice.Unity'";
            //string sFilter = "\"urn:content-classes:message\" LIKE 'IPM.Note.Voice.Unity'";
            //string sFilter = "\"urn:schemas:mailheader:content-class\" LIKE 'IPM.Note.Voice.Unity'";
            //string sFilter = "\"urn:content-classes\" LIKE 'IPM.Note.Voice.Unity'";
            //string sFilter = "\"urn:content-class\" LIKE 'IPM.Note.Voice.Unity'";
            //string sFilter = "\"urn:contentclass\" LIKE 'IPM.Note.Voice.Unity'";

            //string sFilter = "\"urn:schemas:messageclass\" LIKE '%Unity%'";
            //string sFilter = "\"urn:schemas:mailheader:message-id\" LIKE '%Unity%'";
            //string sFilter = "\"urn:content-classes:message\" LIKE '%Unity%'";
            //string sFilter = "\"urn:schemas:mailheader:content-class\" LIKE '%Unity%'";
            //string sFilter = "\"urn:content-classes\" LIKE '%Unity%'";
            //string sFilter = "\"urn:content-class\" LIKE '%Unity%'";
            //string sFilter = "\"urn:contentclass\" LIKE '%Unity%'";


Ideas?
Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MAPIFolder oInbox = oApp.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);
string sFolderPath = oInbox.FolderPath;
string sScope = "SCOPE ('deep traversal of \"" + sFolderPath + "\"')";
string sFilter = "\"urn:schemas:mailheader:subject\" LIKE 'RE:%'";
Microsoft.Office.Interop.Outlook.Search oSearch =  oApp.AdvancedSearch(sScope, sFilter, false, "RE folders");
Microsoft.Office.Interop.Outlook.MAPIFolder oSearchFolder = oSearch.Save("RE folders");

Open in new window

0
Comment
Question by:sypkenjm
  • 2
3 Comments
 
LVL 29

Expert Comment

by:Gautham Janardhan
ID: 33669444
string sFilter = "\"urn:schemas:mailheader:content-class\" LIKE 'IPM.Note.Voice.Unity'";

this should have worked.. What is happening when you give this filter ??
0
 

Author Comment

by:sypkenjm
ID: 33671639
I just tried that one again with the same results. Basically, what happens with all of the sFilter strings I've tried so far, is that it creates the search filter in Outlook; when I click on it, Outlook tells me "There are no items to show in this view", and when I right click on it and hit "Customize this Search Folder", the "Criteria" button is greyed out.

When I create the search folder manually, there are items in the view, and I can hit the customize button.
0
 
LVL 29

Accepted Solution

by:
Gautham Janardhan earned 2000 total points
ID: 33699663
can yout try this add see if any exception is throwin in the catch
class Program
    {
        static void Main(string[] args)
        {
            Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.MAPIFolder oInbox = oApp.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderInbox);
            string sFolderPath = oInbox.FolderPath;
            string sScope = "SCOPE ('deep traversal of \"" + sFolderPath + "\"')";
            string sFilter = "\"urn:schemas:mailheader:content-class\" LIKE 'IPM.Note'";
            // string sFilter = "\"urn:schemas:mailheader:subject\" LIKE 'RE:%'";
            oApp.AdvancedSearchComplete += new ApplicationEvents_11_AdvancedSearchCompleteEventHandler(oApp_AdvancedSearchComplete);
            Microsoft.Office.Interop.Outlook.Search oSearch = oApp.AdvancedSearch(sScope, sFilter, false, "RE folders");
            // Microsoft.Office.Interop.Outlook.MAPIFolder oSearchFolder = oSearch.Save("RE folders");
            Console.Read();
        }

        static void oApp_AdvancedSearchComplete(Search SearchObject)
        {
            try
            {
                var item1 = SearchObject.GetTable();
                item1.GetArray(SearchObject.Results.Count);

                foreach (Microsoft.Office.Interop.Outlook.MailItem item in SearchObject.Results)
                {
                    
                }
            }
            catch
            {
            }
        }


    }

Open in new window

0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Ever faced an issue with Microsoft Outlook? If you’ve been working long enough with this popular emailing platform, you’ve probably faced more than one issue. Like to restore ScanPST.exe .bak file. Here in this post we will discuss the methods to re…
This is a comprehensive review of a bundled Toolkit designed for use by IT Professionals and End Users to help Microsoft Outlook fans manipulate Outlook files and repair some common problems. Enjoy...
As many of you are aware about Scanpst.exe utility which is owned by Microsoft itself to repair inaccessible or damaged PST files, but the question is do you really think Scanpst.exe is capable to repair all sorts of PST related corruption issues?
If you are looking for an automated tool which can generate reports for Outlook emails and other items from PST file, then you can go for Kernel PST Reporter tool. The reports which are created by this tool are helpful to analyze and understand PST …

569 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question