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为任意数量的记录捕获页面输出。