Создание pst-файла с помощью Redemption

Я работаю над проектом на C#, который включает в себя синтаксический анализ файлов .pst, и моя группа решила использовать для этого библиотеку Redemption. Мы успешно проанализировали файлы электронной почты в объекты RDOMail, однако теперь мы хотим записать подмножество этих писем в новый файл .pst. Я успешно записал подмножество в файлы .eml с помощью функции email.SaveAs(), но не могу понять, как сохранить этот список в виде .pst. Я просматривал документацию, однако она оставляет желать лучшего. Может ли кто-нибудь, кто использовал Redemption, указать мне правильное направление или привести пример ?? Заранее спасибо за вашу помощь!


person tbdavis    schedule 08.03.2013    source источник


Ответы (2)


Вам нужно будет создать/открыть файл PST с помощью RDOSession.Stores.AddPstStore (возвращает RDOPSTStore). объект). Когда у вас есть хранилище, вы можете открывать/создавать папки (начиная с RDOStore.IPMRootFolder), создавать сообщения (RDOFolder.Items.Add) и копировать старые сообщения в новые сообщения (RDOMail.CopyTo(RDOMail/RDOFolder)).

person Dmitry Streblechenko    schedule 08.03.2013
comment
Привет @Dmitry, у меня проблемы с сохранением объектов RDOMail в объект RDOFolder. Не могли бы вы проверить мой пост здесь: stackoverflow. ком/вопросы/30407435/ - person Freestyle076; 26.05.2015

Я изо всех сил пытался сделать это в течение последних нескольких часов и хотел бы сэкономить это время для других.

Вы должны установить redemption и добавить его в качестве ссылки на свой проект, чтобы он работал.

            RDOSession session = new RDOSession(); // throws exception 1

        session.LogonPstStore(@"c:\temp\output.pst");
        RDOFolder folder = session.GetDefaultFolder(rdoDefaultFolders.olFolderInbox);

        string[] fileEntries = Directory.GetFiles(@"C:\emlFiles\", "*.eml");


        foreach (string filePath in fileEntries)
        {
            RDOMail mail = folder.Items.Add("IPM.Mail");
            mail.Sent = true;
            mail.Import(filePath, 1024);
            // folder.Items.Add(mail);
            mail.Save();
        }

        session.Logoff();

Я также создал для него небольшой пример приложения Windows Forms. Я знаю, что код уродлив, но он помогает

person Thibault    schedule 03.05.2017