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
        }
Пример #2
0
        // 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);
                    }
                }
            }
        }