怎样建立个人网站Email?

找学校,搜学校,学校口碑早知道!
您可以免费发布教育培训信息,找学校,找课程,找老师,学校建站,发布新闻动态,招生培训等。
推荐学校:
LOADING...
您当前的位置: >>
>> Java教程 >> 什么情况下需要使用XML创建 EMAIL 模板a757c16e0506b8cb
什么情况下需要使用XML创建 EMAIL 模板
更新日期: 来源:网友投搞 作者:佚名 分享2052次
核心提示:新闻资讯频道所转载文章、数据等内容纯属作者个人观点,仅供学习参考使用。本文《什么情况下需要使用XML创建 EMAIL 模板》来源于网络并非原创内容,请读者以官方内容为准,如果您发现本资料有侵犯您的知识产权,请立即联系我们,我们将第一时间内删除该资料,以保障您的知识产权。
  发送邮件是web应用系统的一个基本功能。一般来说,邮件都有特定的类型,比如说密码提醒,欢迎信息,订单确认或者收信确认。尽管不同应用邮件的内容各不相同,但是发送邮件的过程基本上是一样的。 构建消息,发送给邮件服务器,发送。  当使用Java开发的时候,我们经常使用JavaMail API 来连接邮件服务器发送邮件。但是这种方式过于粗笨(主要由邮件的灵活性造成的),所以当你需要多次使用这种方式发送邮件的时候,最好写一个wrapper.根据使用的方式不同,wrapper可以是发送某一特定的邮件,比如说密码提醒,或者作为一种通用的模式,接受主题,接收人,邮件内容作为参数。  一旦使用wrapper发送邮件,你需要一个自主构建消息的系统。让我们使用密码提醒作为例子。基本上所有的邮件都包含主题,内容和接收人。当我们发送密码提醒邮件的时候,用户地址和密码是从某个记录登陆信息的知识库里提取的。主题和内容需要和数据库提取的数据合并,并且被保存在某个地方。系统设计最大的问题就是在什么地方保存这种类型的字符串。在很多情形下,字串被保存在属性文件里,这种方式分离了数据和源代码,并且使本地化更加轻易。我在很多web应用系统中使用了这种存储机制,但很不幸的是,这种方式有很多缺陷。  以下是利用属性文件存储邮件字串不合适的原因:  •属性文件使用一种非常简单的数据结构-名称和值组合。当你需要很多值对应一个名称的时候这种结构就不合适了。比如,一个邮件有4个接收人,3个抄送人,使用属性文件很难解决这个问题。  •属性文件的格式非常严格。名称和值必须在同一行上,所以当你编辑文件的时候长字符串是很难处理的。比如,把一个邮件的所有内容放进属性文件是一件多么痛苦的事情。假如你希望值的内容包括换行,你必须使用  另一种选择是使用XML作为邮件模板,这也是本篇文章所要讨论的内容。XML为你构建模板提供了极大的灵活性,并且它不会有属性文件所有的格式限制,因此这种方式很轻易处理长字符串。XML主要弱势就是它处理起来比属性文件复杂。使用属性文件的时候,装载文件和装载后访问文件非常轻易。而装载XML文件和使用java提供的多个XML处理库之一处理XML文件就需要更多的工作了。  这篇文章和所附的代码提供了一个通用的模板使你能够使用XML文件创建模板并且发送邮件,希望由此能够减轻这个过程的痛苦。在这个模板里,我将使用Jakarta 项目里的Commons Digester 包来处理XML,使用JavaMail API发送邮件。    邮件模板  让我们来看看邮件模板的格式。模板是XML文件,它包含一个根元素和一系列根的子元素。根元素是。必要的子元素是, , 和 。可选的子元素是 , , 和 。假如你使用过邮件系统,那么你可以推导出这些元素实际包含的内容。可选的元素有多个实例,所以你可以为每种类型的接收者指定多个地址。我待会会在描述消息处理的时候来解释运行机制。以下是一个模板文件的例子。    rafe@rafe.us      rafe@rafe.us  This is the subject  This is the body of an email message.    可定制的模板  属性文件的一个有用的特性是你可以使用MessageFormat 类用动态传入的值替代属性文件里的被指定参数。比如说,假如你需要在属性文件里指定errors,其中一个errors是file not found, 你可以这样写:  file.not.found.error=Error, could not find file {0}.  然后,在运行时刻,你这样使用MessageFormat:    ResourceBundle bundle = ResourceBundle.getBundle(  "MyProperties", currentLocale);  Object[] arguments  = { "some_file.txt" };  String newString   = MessageFormat.format(  bundle.getString("file.not.found.error"), arguments);    最后,newString 将包含Error, could not find file some_file.txt.我在这个系统里加入了类似的灵活性。 可以格式化所有的字符串,所以你可以在邮件模版的subject 和body元素里内嵌在属性文件使用的同样的令牌。  在某种情形下,你希望在发送邮件的时候插入个人化的信息。比如,你希望在邮件内容里或者订单的内容里包含收件人的姓。本系统使用MessageFormat 来处理邮件模版的内容和主题,从而解决这个问题。处理内容和主题的时候只使用一个参数数组。这样主题里可以包含令牌{0}, {2}, {3}, 内容可以包含令牌{0}, {1}, {4} 。我之所以采用这种方式是因为在很多情形下主题和内容使用相同的参数,同时这种方式也简化了传递给EmailSender所需要的参数。    处理模版  创建完模版,下一步所要做的就是处理它。我们知道,现在有很多的XML处理包可供选择。Commons Digester是Jakarta的公共项目,最初是为了在Struts项目中快速方便的解析Struts的的配置文件而产生的。它提供了从XML文件里的元素到使用类似于XPath 语法的数据结构的映射。 好处在于为了从 XML文件里得到某个元素你不必用SAX一个节点一个节点的解析,也不必使用DOM处理树状数据结构。  下面这个方法从XML文件里读取数据,然后把数据拷贝到EmailTemplate对象中。    public static EmailTemplate getEmailTemplate(InputStream aStream)  {  Digester digester = new Digester();  digester.setValidating(false);    digester.addObjectCreate("email", EmailTemplate.class);    digester.addBeanPropertySetter("email/subject", "subject");  digester.addBeanPropertySetter("email/body", "body");  digester.addBeanPropertySetter("email/from", "from");  digester.addCallMethod("email/to", "addTo", 0);  digester.addCallMethod("email/cc", "addCc", 0);  digester.addCallMethod("email/bcc", "addBcc", 0);    try  {  return (EmailTemplate)digester.parse(aStream);  }  catch (IOException e)  {  logger.error("Error: ", e);    }  catch (SAXException e)  {  logger.error("Error: ", e);    }  }    让我们来逐行研究这段代码。Commons Digester工作的原理是由你来指定解析文件的一些规则。因为没有规范邮件模版的DTD文件,所以在指定处理规则之前,我将validating flag设定为false。开始处理文件的时候,我实例化Digester对象然后调用方法建立数据映射规则。首先,我调用addObjectCreate()方法来建立创建EmailTemplate对象的规则。email是XML模版文件的根元素。因此模版文件和EmailTemplate 对象一一对应。  我使用addBeanPropertySetter()来处理在模版文件中只出现一次的元素。这个方法有两个参数,元素的路径和要调用的赋值方法。在第一次调用的时候,我指定在文件中符合email/subject 模式的元素应该赋值给EmailTemplate 类的subject 。我们用 “/”来描速XML文件的内嵌关系。在这个例子中,符合subject模式的元素是email 子元素。为了提供更多的灵活性我们可以使用Wildcards。参考Commons Digester的JavaDoc 你可以了解具体的模式的构成方式。  使用赋值方法处理在模版文件中出现多次的元素是不可行的。我们使用addCallMethod()来处理这种情形,这个方法从元素中取值并且调用指定的方法。我使用这个方法有三个参数的版本,它们是:匹配的模式,调用的方法,调用方法所使用的参数数量。在例子的三种情形中第三个参数都是0,说明符合模式的元素是调用方法的唯一参数。在EmailTemplate类中我定义了三个方法:addTo(), addCc(), addBcc(),这三个方法将模版文件中的收件人列表加入到模版类的收件人集合中。  邮件元素的六种类型的子元素的规则都被指定好之后,我开始解析这个文件。在这个例子中, 我传入getEmailTemplate 方法的输入参数InputStream 。parse方法可以解析File,SAX InputSource, InputStream, Reader, 目标文件的URI。我使用InputStream。 由调用这个方法的代码取得XML文件并且把它转化为InputStream 。为了让这个方法更加通用,我可以用Object作为参数,并且在方法内部使用instanceof 来确定参数的类型,再用相应的方式来处理。  方法parse 抛出IOException 或者SAXException。把这些异常传给Log4J,由它来处理,返回null. 假如没有异常抛出, 将返回由Digester创建的EmailTemplate对象。    EmailTemplate类剩下的部分  getEmailTemplate()方法是类EmailTemplate的核心。其他的部分是一些属性值和一些辅助性的方法。有3个String 类型的属性值:内容,主题,寄件人地址,3个ArrayList属性值:to, CC, BCC 列表,这3个值都以String作为基本元素。还有相应的get,set和加入集合的方法。还有3个附加的方便的方法:getToAddresses(), getCcAddresses(), 和 getBccAddresses()。JavaMail接口需要InternetAddress 数组作为地址集合的参数,这些方法可以把对象的String数组转化为JavaMail接口需要的数组形式。    类EmailSender  当模版文件被解析成EmailTemplate对象,下一步就是发送邮件信息。EmailSender 类包含一个静态的,重载的方法-sendEmail()。 这个方法可以通过很多种方式调用,所有的方式都是对下面这个完全参数方法的一个引用:  public static void sendEmail(  String aTo,  EmailTemplate aTemplate,  String[] aArgs)    参数不需要过多的解释。第一个是邮件的发送地址。你可以在邮件模版里指定很多接收人地址,但是在运行时刻,大多数情况下,系统只
阅读上一篇:
阅读下一篇:Outlook 设置分类文件夹_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
13页1下载券5页免费5页1下载券18页¥1.002页1下载券 6页免费9页免费7页免费16页1下载券17页1下载券
喜欢此文档的还喜欢5页免费57页1下载券3页免费29页免费95页1下载券
Outlook 设置分类文件夹|
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢热门搜索:
热门专题:
电子邮件怎么建立
提问者:| 浏览次数:1097次 |问题来自:全国
您还可以输入<span class="f20" id="maxtip_answerask_00字
验证码错误
所有通过电子邮箱发送、传递和接收的文件都是电子邮件。可以通过不同的编辑软件来编辑形成,然后通过电子邮箱发送出去就是电子邮件了。
全国搜房网友等待为您解答
登录并提交回答
登录回答可获积分奖励
还没有账号?
如果您发现不正当的内容或行为,请及时联系我们!
举报内容:
举报原因:
(可多选)
含有反动的内容
含有人身攻击的内容
含有广告性质的内容
涉及违法犯罪的内容
含有违背伦理道德的内容
含色情、暴力、恐怖的内容
含有恶意无聊灌水的内容
Copyright &
Fang Holdings Limited, All Rights Reserved
搜房公司 版权所有
举报电话:010- 举报邮箱:Service Unavailable
Service Unavailable
HTTP Error 503. The service is unavailable.你的位置: &&
在 Outlook 2007中如何创建电子邮件模板或电子邮件窗体
在 Outlook 2007中如何创建电子邮件模板或电子邮件窗体
  概要  在使用 Outlook 时,可以创建模板或窗体,以便在发送电子邮件时使用。如果创建模板或窗体,则您发送的电子邮件会具有相同的格式。本文说明如何创建电子邮件模板和电子邮件窗体。 更多信息  如何创建电子邮件模板1.在&文件&菜单上,指向&新建&,然后单击&邮件&。2.键入所要的收件人、主题和正文。3.在&文件&菜单上,单击&另存为&。4.在&保存类型&列表中,单击&Outlook 模板(*.oft)&。邮件的主题行自动成为文件名。5.单击&保存&。如何根据电子邮件模板创建项目1.在&文件&菜单上,指向&新建&,然后单击&选择窗体&。2.在&查找&列表中,单击&文件系统中的用户模板&。3.在列表中单击您的模板,然后单击&打开&。也可以创建电子邮件窗体。电子邮件窗体的效果与电子邮件模板一样。 如何创建电子邮件窗体1.在&文件&菜单上,指向&新建&,然后单击&邮件&。2.键入所要的收件人、主题和正文。3.在&工具&菜单上,指向&窗体&,然后单击&将窗体发布为&。4.在&查找&列表中,单击&个人窗体库&。5.在&显示名称&框中,键入要使用的窗体名称。6.如果您希望文件名不同于显示名称,则在&窗体名称&框中键入窗体的文件名。 7.单击&发布&。8.如果系统提示您将窗体定义与项目一起保存,则单击&是&。 如何根据电子邮件窗体创建项目1.在&文件&菜单上,指向&新建&,然后单击&选择窗体&。2.在&查找&列表中,单击&个人窗体库&,单击您的窗体,然后单击&打开&。要向电子邮件窗体添加字段,必须在 Outlook 的&窗体&设计环境中自定义电子邮件窗体。
最新热门tag

我要回帖

更多关于 建立个人网站 的文章

 

随机推荐