2013-03-08 2 views
1

Интересно, возможно ли с помощью .NET Framework или Microsoft.Office.Interop.Outlook загрузить электронное сообщение (* .msg), выполнить поиск, заменить и отправить это из C#.Использовать файл сообщений Outlook (msg) в качестве шаблона

Все это происходит на сервере, поэтому Outlook не может быть установлен.

То, что я пытался

  • библиотека Redemption, но так или иначе она теряет изображения встраиваются в шаблоне и не может понять, чтобы исправить эту

  • Использование Microsoft.Office.Interop. Перспективы

    Application objOutlook = new Application(); 
        objOutlook.CreateItemFromTemplate("c:\temp\..",) 
    

Но он ожидает, как это второй параметр кругозора ВОЛП дер, я не могу дать ему путь к файлу, где он сэкономит

Я имею в виду, чтобы переключиться на обычные текстовые файлы вместо C#, но, возможно, кто-то сделал это уже

Update 1

Это код погашения, который я пробовал. Проблема заключается в том, что форматирование и изображения (подписи не сохраняется)

using Interop.Redemption; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Replace(@"mailnonunicode.msg"); 
      Replace(@"mailunicode.msg"); 
      Replace(@"mailtemplate.oft"); 
     } 

     static void Replace(string cTestharnessKmailMsg) 
     { 
      RDOSession rdoSession = new RDOSession(); 
      RDOMail messageFromMsgFile = rdoSession.GetMessageFromMsgFile(cTestharnessKmailMsg); 

      messageFromMsgFile.Body = messageFromMsgFile.Body.Replace("abc", 
                     "xyz"); 
      messageFromMsgFile.Save(); 
     } 
    } 
} 

Update 2/Решение

Если вы хотите сохранить форматирование, вы должны работать с HTMLBody или свойствами RTFBody , а не с текстом Body.

ответ

1

Какой у вас код выкупа?

Если сообщение необходимо отправить, оно должно быть создано в одной из папок Outlook - отдельный файл MSG не может быть отправлен.

+0

Я не могу иметь внешний вид, установленный на сервере, поэтому нет папок с перспективой. Я думаю, что это исключает выкуп. :( – buckley

+0

Семейство объектов RDO (http://www.dimastr.com/redemption/rdo_introduction.htm) не нуждается в Outlook, а только в системе MAPi, что означает, что вы можете установить автономную версию MAPI (http://www.microsoft.com/downloads/details.aspx?FamilyID=e17e7f31-079a-43a9-bff2-0a110307611e&DisplayLang=en). Затем вы можете вызвать RDOSession.LogonExchangeMailbox для динамического подключения к почтовому ящику, получить папку, в которой будет отображаться сообщение (например, RDOSession.GetDefaultFolder (olFolderDrafts), создайте сообщение (RDOFolder.Items.Add), импортируйте файл MSG (RDOMail.Import), а затем отправьте его. –

+0

Я добавил свой код к вопросу. способ сделать замену? Я могу отправить вам полное решение, если это полезно. – buckley

Смежные вопросы