2013-03-08 35 views
1

我想知道是否可以使用.net框架或Microsoft.Office.Interop.Outlook加載電子郵件(* .msg),執行搜索並替換併發送它來自C#。使用Outlook消息文件(msg)作爲模板

這一切都發生在服務器上,因此Outlook無法安裝。

我已經試過

  • 贖回庫,但不知何故失去在模板內聯的圖像,並不能找出糾正這種

  • 使用Microsoft.Office.Interop。前景

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

但是預計,因爲它的第二個參數FO的前景lder連續,我不能給它一個文件路徑,在那裏將保存到

我想切換到普通的txt文件,而不是C#,但也許有人這樣做已經

更新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(); 
     } 
    } 
} 

更新2 /解決方案

如果您想保留格式,你需要HTMLBody或RTFBody性工作,而不是純文本Body。

回答

1

您現有的兌換代碼是什麼?

如果需要發送消息,則必須在其中一個Outlook文件夾中創建消息 - 無法發送獨立的MSG文件。

+0

我不能在服務器上安裝Outlook,所以沒有Outlook文件夾。我認爲這樣就排除了贖回。 :( – buckley 2013-03-08 18:13:45

+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),然後發送它 – 2013-03-08 23:22:23

+0

我已經添加了我的代碼到這個問題。如果有幫助,我可以給你發送完整的解決方案 – buckley 2013-03-12 12:36:00

相關問題