Word邮件合并为ASP.NET服务器

时间:2010-09-09 08:59:50

标签: c# .net asp.net ms-word

需要为ASP.NET应用程序执行邮件合并。

只是以编程方式直接使用word来考虑,但这具有liscening含义,不推荐使用(http://support.microsoft.com/kb/257757

所以正在研究openXML / Word Automation Services。但不确定是否可以通过此轻松实现邮件合并?

1 个答案:

答案 0 :(得分:1)

我们有4到5年前的这样的要求,然后我们决定采用定制的自制解决方案。以下是可能对您有帮助的解决方案概要:

  1. 使用富文本框捕获邮件模板(用户可以创建自己的邮件)。使用特殊语法在模板中插入数据的占位符。所以你拥有的是一个包含占位符的html主体。
  2. 当需要为N条记录生成邮件时,对于每条记录,解析模板html以搜索占位符(可以使用reg-ex完成)并用相关数据替换它们。
  3. 生成的html可以通过电子邮件发送(或者可以使用库转换为pdf或word)
  4. 实际上,这可能意味着需要根据实际需求进行大量工作。例如,在我们的案例中

    1. 我们有一个描述业务实体及其属性的元数据存储库
    2. GUI,供最终用户定义模板。 UI允许多部分模板(例如,如果您需要发送带附件的求职信),插入各种占位符(我们支持字段,实体组,简单过滤等),部分格式(html / pdf / doc),详细信息电子邮件/传真收件人(在元数据方面)
    3. 实体分组支持 - 实质上意味着该能力具有子数据。例如,要打印关于订单的信函,您必须为订单中订购的商品(产品)放置一个表格。可以有任何级别的嵌套。
    4. 为了提高效率,运行时只解析模板内容一次,然后才进行替换。我们还有查询引擎将元数据占位符转换为查询以获取数据等
    5. 如果有任何预先构建的工具用于此类事情会很棒但是因此我不知道任何事情。

      编辑:如果您的要求是拥有用户定义的邮件模板,则以上所有内容都是相关的。如果您只有预定义的模板集,那么解决方案可以更简单 - 例如,(如Yves所指出的)使用带有数据绑定表达式的aspx文件来获取html / xml主体,然后将其转换为相关格式。然后,您可以使用HttpServerUtility.Execute捕获任意数量记录的页面输出。