2010-09-09 55 views
0

需要爲ASP.NET應用程序執行郵件合併。用於ASP.NET服務器的Word郵件合併

只是編程方式使用字直接但這liscening影響,因此不推薦(http://support.microsoft.com/kb/257757

所以一直在尋找進入的OpenXML /字自動化服務考慮。但不知道是否可以通過這個輕鬆實現郵件合併?

+0

你可以使用aspx頁面來渲染xml。只需將內容類型設置爲正確的格式即可。 – 2010-09-09 09:05:38

+0

看看這個:ntemplates.codeplex.com – 2012-07-19 15:40:44

回答

1

我們有這樣的要求,45年回來,然後我們決定去定製自制的解決方案。以下是可能對您有幫助的解決方案概述:

  1. 使用富文本框捕獲郵件模板(用戶可以創建自己的郵件)。使用特殊語法在模板中插入數據的佔位符。所以你擁有的是一個包含佔位符的HTML主體。
  2. 當需要爲N條記錄生成郵件時,對於每條記錄,解析模板html以搜索佔位符(可以使用reg-ex完成)並將其替換爲相關數據。
  3. 生成的HTML可以通過電子郵件(或者它可以轉換成PDF或Word中使用庫)

在現實中,這可能意味着根據實際需要大量的工作。例如,在我們的例子

  1. 我們有一個描述業務實體和它們的屬性
  2. GUI爲最終用戶定義模板元數據存儲庫。 UI允許使用多部分模板(例如,如果您需要發送帶附件的附信),插入各種佔位符(我們支持字段,實體組,簡單過濾等),部分格式(html/pdf/doc)電子郵件/傳真收件人(根據元數據)
  3. 實體分組支持 - 實質上意味着該能力具有子數據。例如,要打印關於訂單的信件,您必須爲訂單中訂購的商品(產品)放置一張表格。可以有任何級別的這種嵌套。
  4. 爲了提高效率,有運行時分析模板內容只有一次,那麼只有做替換。我們也有查詢引擎,將元數據佔位符轉換爲查詢數據等

這將是偉大的,如果有任何預先建立的工具這樣的事情,但因爲我不知道任何東西。

編輯:如果您的要求是有用戶定義的郵件模板,以上所有都是相關的。如果你只有預定義的模板集合,那麼解決方案可以更簡單 - 例如(如Yves指出的那樣)使用帶有數據綁定表達式的aspx文件來獲取html/xml正文,然後將其轉換爲相關格式。然後您可以使用HttpServerUtility.Execute爲任意數量的記錄捕獲頁面輸出。