public static void Run() { // The path to the File directory. // ExStart:ExtractAttachmentsFromPSTMessages string dataDir = RunExamples.GetDataDir_Outlook(); using (PersonalStorage personalstorage = PersonalStorage.FromFile(dataDir + "Outlook.pst")) { FolderInfo folder = personalstorage.RootFolder.GetSubFolder("Inbox"); foreach (var messageInfo in folder.EnumerateMessagesEntryId()) { MapiAttachmentCollection attachments = personalstorage.ExtractAttachments(messageInfo); if (attachments.Count != 0) { foreach (var attachment in attachments) { if (!string.IsNullOrEmpty(attachment.LongFileName)) { if (attachment.LongFileName.Contains(".msg")) { continue; } else { attachment.Save(dataDir + @"\Attachments\" + attachment.LongFileName); } } } } } } // ExEnd:ExtractAttachmentsFromPSTMessages }
// ExStart:ExtractMSGEmbeddedAttachment public static void ExtractInlineAttachments(string dataDir) { MapiMessage message = MapiMessage.FromFile(dataDir + "MSG file with RTF Formatting.msg"); MapiAttachmentCollection attachments = message.Attachments; foreach (MapiAttachment attachment in attachments) { if (IsAttachmentInline(attachment)) { try { SaveAttachment(attachment, new Guid().ToString()); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } }