P
PaulH
Hi,
this subject seemed to be so simple (thanks to the PIA interface) but
actually trying it is causing me some headaches. I am writing a .net
application which should (on demand) scan the mailbox infolder for mails with
a certain subject text. A few lines of code seemed to do the magic -- but
fail to execute for a few mails (reproducable).
Here is my (simplified) code:
using System;
using Microsoft.Office.Interop.Outlook; // c:\Program Files\Microsoft
Visual Studio 9.0\Visual Studio Tools for
Office\PIA\Office12\Microsoft.Office.Interop.Outlook.dll
namespace OutlookTest
{
class Program
{
private static Microsoft.Office.Interop.Outlook.Application
pOutlookInstance = null;
static void Main(string[] args)
{
int iItem;
Microsoft.Office.Interop.Outlook.MailItem CurrentMail;
pOutlookInstance = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MAPIFolder MailFolder =
pOutlookInstance.GetNamespace("MAPI").GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
Microsoft.Office.Interop.Outlook.Items FolderItemList = MailFolder.Items;
Console.WriteLine("Outlook[InBox] contains " +
FolderItemList.Count.ToString() + " mail items.");
for (iItem = 1; iItem <= FolderItemList.Count; ++iItem)
{
CurrentMail =
(Microsoft.Office.Interop.Outlook.MailItem)FolderItemList[iItem];
Console.WriteLine("#" + iItem.ToString() + ": Date=" +
CurrentMail.SentOn.ToString("yyyy-MM-dd") + "; Sender=" +
CurrentMail.SenderName);
}
}
}
}
As said before, the code works well but stops with an InvalidCast exception
and an error code HRESULT: 0x80004002 (E_NOINTERFACE) for several mail items.
Looking at these mail items in the inbox I do not see any problems; the mails
seem(to me) not to be different in structure or type.
I guess I am missing something but I do not find out how I can make my above
example work for all mail items in the inbox. Any idea is appreciated. Thanks
in advance.
PaulH
this subject seemed to be so simple (thanks to the PIA interface) but
actually trying it is causing me some headaches. I am writing a .net
application which should (on demand) scan the mailbox infolder for mails with
a certain subject text. A few lines of code seemed to do the magic -- but
fail to execute for a few mails (reproducable).
Here is my (simplified) code:
using System;
using Microsoft.Office.Interop.Outlook; // c:\Program Files\Microsoft
Visual Studio 9.0\Visual Studio Tools for
Office\PIA\Office12\Microsoft.Office.Interop.Outlook.dll
namespace OutlookTest
{
class Program
{
private static Microsoft.Office.Interop.Outlook.Application
pOutlookInstance = null;
static void Main(string[] args)
{
int iItem;
Microsoft.Office.Interop.Outlook.MailItem CurrentMail;
pOutlookInstance = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MAPIFolder MailFolder =
pOutlookInstance.GetNamespace("MAPI").GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
Microsoft.Office.Interop.Outlook.Items FolderItemList = MailFolder.Items;
Console.WriteLine("Outlook[InBox] contains " +
FolderItemList.Count.ToString() + " mail items.");
for (iItem = 1; iItem <= FolderItemList.Count; ++iItem)
{
CurrentMail =
(Microsoft.Office.Interop.Outlook.MailItem)FolderItemList[iItem];
Console.WriteLine("#" + iItem.ToString() + ": Date=" +
CurrentMail.SentOn.ToString("yyyy-MM-dd") + "; Sender=" +
CurrentMail.SenderName);
}
}
}
}
As said before, the code works well but stops with an InvalidCast exception
and an error code HRESULT: 0x80004002 (E_NOINTERFACE) for several mail items.
Looking at these mail items in the inbox I do not see any problems; the mails
seem(to me) not to be different in structure or type.
I guess I am missing something but I do not find out how I can make my above
example work for all mail items in the inbox. Any idea is appreciated. Thanks
in advance.
PaulH