2016-11-07 9 views

ответ

0

объектной модели Outlook не позволит вам явно создать document object - вы можете начать с добавления обычного объекта MailItem с помощью MAPIFolder.Items.Add, добавить вложение, а затем правильно установить MessageClass (посмотрите на существующий элемент документа с помощью OutlookSpy - нажмите кнопку «Элемент» или «Сообщение») и сохраните сообщение.

При использовании Redemption вариант, вы можете использовать его RDODocumentItem объект - можно либо вызвать метод RDODocumentItem.SetDocument или позвоните RDOFolder.Items.Add и указать полный путь к существующему файлу - см http://www.dimastr.com/redemption/rdodocumentitem.htm для более подробной информации.

+0

Не можем ли мы это сделать с помощью средств Office или любой библиотеки с открытым исходным кодом? –

+0

Я только что описал выше, как вы можете это сделать с помощью объектной модели Outlook, это просто не очень просто. –

+0

Спасибо, Бадди! Я сделал это с помощью MessageClass. Но я не могу добавить файл .msg. Ваша помощь будет очень оценена. –

0

Outlook.DocumentItem objDocItem = ParentFolder.Items.Add ("IPM.Document");

  //objDocItem = ParentFolder.Items.Add("IPM.Document"); 

      Outlook.Attachment objAtt = objDocItem.Attachments.Add(strFilePath); 
      objDocItem.Subject = objAtt.FileName; 


      string strFileType = Path.GetExtension(strFilePath); 
      switch (strFileType) 
      { 
       case ".doc": 
       case ".docx": 
        objDocItem.MessageClass = "IPM.Document.Word.Document.8"; break; 
       case ".xls": 
       case ".xlsx": 
        objDocItem.MessageClass = "IPM.Document.Excel.Sheet.8"; break; 
       case ".pps": 
       case ".ppt": 
       case ".pptx": 
        objDocItem.MessageClass = "IPM.Document.PowerPoint.Show.8"; break; 
      } 


      objDocItem.Save();