ho la classe seguente che ha lo scopo di restituire l'oggetto di tutti i messaggi di posta elettronica in una cartellaenumerazione Outlook casella di posta utilizzando Visual Studio
Si tratta di Visual Studio 2008 contro Outlook 2007 in esecuzione su Windows 7 a 64 bit
using System;
using System.Windows;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Outlook;
namespace MarketingEmails
{
public class MailUtils
{
public static string[] processMailMessages(object outlookFolder)
// Given an Outlook folder as an object reference, return
// a list of all the email subjects in that folder
{
// Set a local object from the folder passed in
Folder theMailFolder = (Folder)outlookFolder;
string[] listSubjects = new string[theMailFolder.Items.Count];
int itemCount = 0;
// Now process the MAIL items
foreach (MailItem oItem in theMailFolder.Items)
{
listSubjects[itemCount] = oItem.Subject.ToString();
itemCount++;
}
return listSubjects;
}
}
}
Tuttavia il codice genera l'eccezione di seguito:
Impossibile eseguire il cast di oggetti COM di tipo 'sistema di .__ ComObject' al tipo di terface 'Microsoft.Office.Interop.Outlook.MailItem'. Questa operazione non è riuscita perché la chiamata QueryInterface sul componente COM per l'interfaccia con IID '{00063034-0000-0000-C000-000000000046}' non è riuscita a causa del seguente errore: Nessuna interfaccia supportata (Eccezione da HRESULT: 0x80004002 (E_NOINTERFACE)) .
Capisco che l'errore si è verificato perché sta tentando di elaborare un ReportItem nella cassetta postale selezionata.
Quello che non capisco è il motivo per cui è cercare di processo ro non elementi di posta quando ho specificato:
foreach (MailItem oItem in theMailFolder.Items)
Se avessi voluto per elaborare report voci voce nella casella di posta avrei scritta:
foreach (ReportItem oItem in theMailFolder.Items)
avrei caro piacerebbe scoprire se questo è un bug o se è solo la mia malintesi
Saluti , Nigel Ainscoe
Che funziona un piacere - grazie –
Oh bel trucco JaredPar molto bello. –