public void OpenFoundMessageUsingAsposeEmail(string searchString) { string myPstFile = Utilities.pathToPstFile; // Indexing MS Outlook storage with email messages Index index = new Index(Utilities.indexPath); index.OperationFinished += Utilities.index_OperationFinished; index.AddToIndex(myPstFile); // Searching in index SearchResults results = index.Search(searchString); // User gets all messages that qualify to search query using Aspose.Email API MessageInfoCollection messages = new MessageInfoCollection(); foreach (DocumentResultInfo searchResult in results) { if (searchResult.DocumentType == DocumentType.OutlookEmailMessage) { OutlookEmailMessageResultInfo emailResultInfo = searchResult as OutlookEmailMessageResultInfo; MessageInfo message = GetEmailMessagesById(Utilities.pathToPstFile, emailResultInfo.EntryIdString); if (message != null) { messages.Add(message); } } } }
/// <summary> /// Shows how to implement own custom extractor for outlook document for the extension .ost and .pst files /// </summary> /// <param name="searchString">string to search</param> public static void DetailedResults(string searchString) { //ExStart:DetailedResultsPropertyInDocuments // Create or load index Index index = new Index(Utilities.indexPath); index.AddToIndex(Utilities.documentsPath); SearchResults results = index.Search(searchString); foreach (DocumentResultInfo resultInfo in results) { if (resultInfo.DocumentType == DocumentType.OutlookEmailMessage) { // for email message result info user should cast resultInfo as OutlookEmailMessageResultInfo for acessing EntryIdString property OutlookEmailMessageResultInfo emailResultInfo = resultInfo as OutlookEmailMessageResultInfo; Console.WriteLine("Query \"{0}\" has {1} hit count in message {2} in file {3}", searchString, emailResultInfo.HitCount, emailResultInfo.EntryIdString, emailResultInfo.FileName); } else { Console.WriteLine("Query \"{0}\" has {1} hit count in file {2}", searchString, resultInfo.HitCount, resultInfo.FileName); } foreach (DetailedResultInfo detailedResult in resultInfo.DetailedResults) { Console.WriteLine("{0}In field \"{1}\" there was found {2} hit count", "\t", detailedResult.FieldName, detailedResult.HitCount); } } //ExEnd:DetailedResultsPropertyInDocuments }