tags:

views:

9

answers:

1

how to get current item of outlook 2007 in asp.net c#

here is some code which get all mails

Microsoft.Office.Interop.Outlook.Application app = null; Microsoft.Office.Interop.Outlook._NameSpace ns = null; Microsoft.Office.Interop.Outlook.MailItem item = null; Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = null; Microsoft.Office.Interop.Outlook.MAPIFolder subFolder = null;

      try
       {
         app = new Microsoft.Office.Interop.Outlook.Application();
         ns = app.GetNamespace("MAPI");
         ns.Logon(null,null,false, false);

          inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
          //subFolder =inboxFolder.Folders["inbox"]; //inboxFolder.Folders[1]; also works

          //Console.WriteLine("Folder Name: {0}, EntryId: {1}", subFolder.Name, subFolder.EntryID);
          //Console.WriteLine("Num Items: {0}", subFolder.Items.Count.ToString());

          for (int i = 1; i <= inboxFolder.Items.Count; i++)
             {
               item = (Microsoft.Office.Interop.Outlook.MailItem)inboxFolder.Items[i];
               // System.Windows.Forms.MessageBox.Show("Item: {0} {1}", i.ToString());
               //Console.WriteLine("Subject: {0}", item.Subject);
               //Console.WriteLine("Sent: {0} {1}", item.SentOn.ToLongDateString(), item.SentOn.ToLongTimeString());
               //Console.WriteLine("Categories: {0}", item.Categories);
               //Console.WriteLine("Body: {0}", item.Body);
               //Console.WriteLine("HTMLBody: {0}", item.HTMLBody);
              // System.Windows.Forms.MessageBox.Show(" Subject: " + item.Subject + " TO: " + item.To + " " + item.Body); 
               System.Windows.Forms.MessageBox.Show( i.ToString()); 
             }
          System.Windows.Forms.MessageBox.Show(" Subject: " + item.Subject + " TO: " + item.To + " " + item.Body);    
          }
     catch (Exception ex)
      {
        Console.WriteLine(ex.ToString());
      }
A: 

Explorer object has a property - Selection which contaisn all the items selected in the active explorer.You can check this property to determine the current item in Outlook.

Outlook.Explorer currentExplorer =  this.ActiveExplorer();
  if (this.ActiveExplorer().Selection.Count > 0){
 Object selObject = this.ActiveExplorer().Selection[1];
        if (selObject is Outlook.MailItem)
        {
            Outlook.MailItem mailItem = 
                (selObject as Outlook.MailItem);
            itemMessage ="The item is an e-mail message." +
                " The subject is " + mailItem.Subject + ".";
        }
}

This link might help you.

Kapilg