用JavaMail和XSLT管理e-zine(2)
http://tech.ddvip.com 2007年10月25日 社区交流
内容摘要:在本系列的开篇中,Benoit Marchal 演示了如何用 Java 和 XML实现电子邮件发布的自动化。这个具体的 XML 和 XSLT应用演示了一个电子邮件时事通讯 ezine 发布应用程序,该程序既输出HTML格式的电子邮件消息,又输出纯文本格式的电子邮件消息。本文中的五个可重用代码样本包括一个使用JavaMail 发送电子邮件的 Java 程序、一个将第 1 部分中介绍的 DocBook样本转换成 HTML 的 XSLT 样式表、一个 Java 配置处理器(SAX ContentHandler 形式)以及将所有这些集成在多步骤变换中的 Java代码。
这是有关如何使用 JavaMail 和 XSLT 来实现 e-zine 发布自动化的文章系列的第二部分。在 第 1 部分中,您已经学到了如何将 DocBook XML 文档转换成满足电子邮件发布苛刻需求的文本格式。这需要三个步骤:
使用 XSLT 将 DocBook 转换成临时的文本标记语言
使用定制的 Java 应用将文本标记语言重新格式化成纯文本
在各种 SAX 过滤器的帮助下整理文本
这种方法的一大好处是:将复杂的过程拆分成几个独立的步骤。XSLT 样式表为您带来极大的灵活性: 如果要发布的文档不用 DocBook、而用其它词汇表编写,则只更改样式表即可。而且,SAX 过滤器还帮助使转换组件模块化,这就使组件更易读和更易维护。
在第 2 部分中,我将演示如何用 JavaMail,这个标准 Java 语言电子邮件 API,来通过网络发送 e-zine,从而完成这个过程。在该过程中,我将重述 SAX 事件处理。这个结论演示了如何在大型应用中集成 XSLT 处理。第 1 部分中的图 1 演示了组件是如何协同工作的。
图 1. 解决方案中的组件如何交互

JavaMail 101
在继续进行之前,我们先回顾 JavaMail。如果您已熟悉 JavaMail,则可以 跳到下一节。
电子邮件始终是最流行的因特网应用程序之一。虽然我们往往将电子邮件与 Eudora、Outlook 或 Netscape 这样的电子邮件客户机联系起来,但是很多应用程序可以自动发送或检索电子邮件。回想上一次的联机购物。在完成订单后的几分钟之内,您很可能会受到一封确认电子邮件。它是由电子商店自动发送的。没有人工参与,并且不需要如 Eudora 这样的电子邮件客户机。
来源:ibm 作者:Benoit Marchal 责编:豆豆技术应用