2015-03-16 2 views
0

Я пытаюсь создать программу, которая конвертирует файл eml в один pst. я должен написать эту команду:Eml to pst Redemption C# -> Null Exception RDOMail

RDOSession session = new RDOSession(); 
RDOPstStore store = session.LogonPstStore(newpstpath); 
RDOFolder folder = store.IPMRootFolder.Folders.Item(directoryEmlFile); 
RDOMail mail = folder.Items.Add("IPM.Note"); 

но по команде «RDOMail почта = folder.Items.Add (» IPM.Note «)» система дает мне пустое исключение. Может кто-нибудь мне помочь?

+1

возможный дубликат [Что такое NullReferenceException и как это исправить? ] (http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –

+0

Нет, это не проблема с объектом RDOMail, я думаю, –

+0

Параметр необязателен. Вы пытались вызвать метод Add со значением по умолчанию? Он работает? –

ответ

1

Необходимо, чтобы у вас были проблемы с Outlook и Redemption.

Похоже, вам необходимо использовать метод класса Session (Redemption) GetRDOObjectFromOutlookObject.

set Session = CreateObject("Redemption.RDOSession") 
Session.MAPIOBJECT = Application.Session.MAPIOBJECT 
set redItem= Session.GetRDOObjectFromOutlookObject(mail) 

Add метод класса Items создает и возвращает новый элемент Outlook, в коллекции Items для папки.

+0

Я не вижу объектов объектной модели Outlook в OP ' s. –

+0

Код был добавлен позже, то есть плакат отредактировал сообщение. FYI Свойство Items класса Folder существует в объектной модели Outlook. –

0

Скорее всего переменная папка нуль - если папка не существует, извлекая его по имени (RDOFolder.Folders.Item("foldername")) возвратит нуль:

RDOSession session = new RDOSession(); 
RDOPstStore store = session.LogonPstStore(newpstpath); 
RDOFolder folder = store.IPMRootFolder.Folders.Item(directoryEmlFile); 
if (folder == null) folder = store.IPMRootFolder.Folders.Add(directoryEmlFile); 
RDOMail mail = folder.Items.Add("IPM.Note"); 
Смежные вопросы