当前位置: 首页 > news >正文

请别人做网站网站建设 浙icp 0578

请别人做网站,网站建设 浙icp 0578,wordpress多合一,软件开发网站建设在这篇文章中#xff0c;我将介绍如何使用Spring和Velocity格式化和发送自动电子邮件。 Spring仅提供创建简单文本电子邮件的功能#xff0c;这对于简单的情况很好#xff0c;但是在典型的企业应用程序中#xff0c;由于多种原因#xff0c;您不希望这样做#xff1a; 用… 在这篇文章中我将介绍如何使用Spring和Velocity格式化和发送自动电子邮件。 Spring仅提供创建简单文本电子邮件的功能这对于简单的情况很好但是在典型的企业应用程序中由于多种原因您不希望这样做 用Java代码创建基于HTML的电子邮件内容很繁琐且容易出错 显示逻辑和业务逻辑之间没有明确区分 更改电子邮件的显示结构需要编写Java代码重新编译重新部署等 通常解决这些问题的方法是使用诸如FreeMarker或Velocity之类的模板库来定义电子邮件内容的显示结构。 对于Podcastpedia我选择了Velocity这是Apache的免费开源基于Java的模板引擎。 最后我唯一的编码任务是创建要在电子邮件模板中呈现的数据并发送电子邮件。 我将基于Podcastpedia.org的真实场景进行演示 情境 在Podcastpedia.org的“ 提交播客”页面上我们鼓励访问者和播客生产者提交其播客以包括在我们的播客目录中。 提交播客后将自动生成一封电子邮件以通知我adrianmatei [AT] gmail DOT com和Podcastpedia人员联系[AT] podcastpedia DOT org。 现在让我们看看Spring和Velocity如何一起发挥作用 1.先决条件 弹簧设置 “ Spring框架提供了一个有用的实用程序库用于发送电子邮件该电子邮件使用户免受底层邮件系统的细节的侵扰并负责代表客户端进行低级资源处理。” [1] 1.1.1。 图书馆事务 为了能够使用Spring Framework的电子邮件库以下附加jar必须位于应用程序的类路径中。 JavaMail mail.jar库 JAF activation.jar库 我使用Maven加载了这些依赖关系因此这是pom.xml的配置片段 Spring邮件依赖 dependencygroupIdjavax.mail/groupIdartifactIdmail/artifactIdversion1.4.7/versionscopeprovided/scope /dependency dependencygroupIdjaf/groupIdartifactIdactivation/artifactIdversion1.0.2/versionscopeprovided/scope /dependency速度设定 要使用Velocity创建电子邮件模板首先需要在类路径上提供Velocity库。 使用Maven您在pom.xml文件中具有以下依赖关系 Maven中的速度依赖性 !-- velocity -- dependencygroupIdorg.apache.velocity/groupIdartifactIdvelocity/artifactIdversion1.7/version /dependency dependencygroupIdorg.apache.velocity/groupIdartifactIdvelocity-tools/artifactIdversion2.0/version /dependency2.电子邮件通知服务 在成功提交播客之后我为电子邮件通知定义了EmailNotificationService接口。 它只有一项操作即将播客拟议的播客通知播客。 下面的代码显示了EmailNotificationServiceImpl 它是上述接口的实现 Java代码发送通知电子邮件 package org.podcastpedia.web.suggestpodcast;import java.util.Date; import java.util.HashMap; import java.util.Map;import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage;import org.apache.velocity.app.VelocityEngine; import org.podcastpedia.common.util.config.ConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.mail.javamail.MimeMessagePreparator; import org.springframework.ui.velocity.VelocityEngineUtils;public class EmailNotificationServiceImpl implements EmailNotificationService {Autowiredprivate ConfigService configService; private JavaMailSender mailSender;private VelocityEngine velocityEngine;public void sendSuggestPodcastNotification(final SuggestedPodcast suggestedPodcast) {MimeMessagePreparator preparator new MimeMessagePreparator() {SuppressWarnings({ rawtypes, unchecked })public void prepare(MimeMessage mimeMessage) throws Exception {MimeMessageHelper message new MimeMessageHelper(mimeMessage);message.setTo(configService.getValue(EMAIL_TO_SUGGEST_PODCAST));message.setBcc(adrianmateigmail.com);message.setFrom(new InternetAddress(suggestedPodcast.getEmail()) );message.setSubject(New suggested podcast);message.setSentDate(new Date());Map model new HashMap(); model.put(newMessage, suggestedPodcast);String text VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, velocity/suggestPodcastNotificationMessage.vm, UTF-8, model);message.setText(text, true);}};mailSender.send(preparator); }//getters and setters omitted for brevity} 现在让我们看一下代码 JavaMailSender和MimeMessagePreparator org.springframework.mail软件包是Spring框架的电子邮件支持的根级软件包。 用于发送电子邮件的中央接口是MailSender接口但是我们使用的是org.springframework.mail.javamail.JavaMailSender接口第org.springframework.mail.javamail.JavaMailSender行该接口向MailSender接口添加了专门的JavaMail功能例如MIME消息支持从它继承了。 JavaMailSender还提供了用于准备JavaMail MIME消息的回调接口称为org.springframework.mail.javamail.MimeMessagePreparator (lines 26-42) org.springframework.mail.javamail.MimeMessagePreparator (lines 26-42) 。 MimeMessageHelper 处理JavaMail消息时另一个有用的类是org.springframework.mail.javamail.MimeMessageHelper类该类使您不必使用冗长的JavaMail API。 如您所见通过使用MimeMessageHelper 创建MimeMessage变得非常容易 MimeMessageHelper的用法 MimeMessageHelper message new MimeMessageHelper(mimeMessage);message.setTo(configService.getValue(EMAIL_TO_SUGGEST_PODCAST));message.setBcc(adrianmateigmail.com);message.setFrom(new InternetAddress(suggestedPodcast.getEmail()) );message.setSubject(New suggested podcast);message.setSentDate(new Date());速度引擎 接下来要注意的是如何创建电子邮件文本 使用Velocity模板创建电子邮件文本 Map model new HashMap(); model.put(newPodcast, suggestedPodcast); String text VelocityEngineUtils.mergeTemplateIntoString( velocityEngine, velocity/suggestPodcastNotificationMessage.vm, UTF-8, model); message.setText(text, true); VelocityEngineUtils.mergeTemplateIntoString方法将指定的模板类路径中存在于Velocity文件夹中的suggestPodcastNotificationMessage.vm 与给定的模型模型–“ newPodcast”合并该模型包含将模型名称作为键并将模型对象作为值的映射。 您还需要指定要使用的velocityEngine 最后结果以字符串形式返回 2.3.1。 创建速度模板 您可以在下面看到在此示例中使用的Velocity模板。 请注意它是基于HTML的并且由于它是纯文本因此可以使用您喜欢HTML或文本编辑器来创建。 速度模板 htmlbodyh3Hi Adrian, you have a new suggested podcast!/h3pFrom - ${newMessage.name} / ${newMessage.email} /ph3Podcast metadataline /h3p${newMessage.metadataLine}/ph3With the message/h3p${newMessage.message}/p/body/htmlBean配置 让我们看看如何在应用程序上下文中配置所有内容 电子邮件服务配置 !-- ********************************* email service configuration ******************************* -- bean idsmtpSession classorg.springframework.jndi.JndiObjectFactoryBeanproperty namejndiName valuejava:comp/env/mail/Session/ /bean bean idmailSender classorg.springframework.mail.javamail.JavaMailSenderImplproperty namesession refsmtpSession / /bean bean idvelocityEngine classorg.springframework.ui.velocity.VelocityEngineFactoryBeanproperty namevelocityPropertiesvalueresource.loaderclassclass.resource.loader.classorg.apache.velocity.runtime.resource.loader.ClasspathResourceLoader/value/property /bean bean idemailNotificationServiceSuggestPodcast classorg.podcastpedia.web.suggestpodcast.EmailNotificationServiceImplproperty namemailSender refmailSender/property namevelocityEngine refvelocityEngine/ /bean JavaMailSender具有对smtp会话的JNDI引用。 在Jetty9-gmail-account.xml文件中可以找到有关如何使用Google帐户配置电子邮件会话的通用示例。 VelocityEngineFactoryBean是配置VelocityEngine并将其提供为bean引用的工厂。 ClasspathResourceLoader是一个简单的加载器将从classpath加载模板 摘要 在本示例中您已经学习了如何使用Spring和Velocity在Java中编写HTML电子邮件。 您所需要做的就是邮件Spring和Velocity库编写电子邮件模板并使用那些简单的Spring帮助器类将元数据添加到电子邮件中并发送。 资源资源 源代码– GitHub存储库 播客网 org.podcastpedia.web.suggestpodcast.EmailNotificationService.java-电子邮件通知的Java接口 播客常见 src / main / resources / spring / pcm-common.xml –在Spring应用程序上下文中与电子邮件相关的Bean配置 网页 Spring电子邮件集成 Apache Velocity项目 翻译自: https://www.javacodegeeks.com/2014/07/how-to-compose-html-emails-in-java-with-spring-and-velocity.html
http://www.pierceye.com/news/613132/

相关文章:

  • 青龙桥网站建设企业网页是什么
  • 上海网站建设备案号怎么恢复法律咨询网站开发
  • 烟台做网站价格动力网站建设
  • 北戴河网站建设墨刀制作网页教程
  • 成都网站设计开发做得好微信商城怎么开发
  • 江西省城乡建设培训网-官方网站上海建设集团有限公司
  • 凡科网站设计模板grimhelm wordpress
  • 自己做的网站不备案行吗建筑工程集团有限公司
  • 网站初期 权重怎么做彩票类网站开发
  • 南通网站定制公司服务器网站建设维护合同
  • 亳州做商标网站的公司免费的网站模板
  • 西南城乡建设部网站首页python3做网站教程
  • 网站首页设计欣赏个人电影网站建设
  • 导航网站建设怎么给网站图片加alt
  • 备案成功后怎么建设网站宠物喂养网页设计模板以及代码
  • 东莞哪家网站建设比较好wordpress更改语言设置
  • 如何找做网站的客户wordpress适合视频网站吗
  • 网站建设的业务流程图拔萝卜视频播放在线观看免费
  • 建个网站要多少钱高安网站制作
  • dw设计模板百度ocpc如何优化
  • 苏宁网站优化与推广html教程网站
  • 怎么做网站网页免费高清屏幕录像
  • 网络推广哪个网站好亚马逊网站开发使用的什么方式
  • 佛山企业网站建设咨询怎么从零开始做网站
  • dede移动端网站源码中国能建设计公司网站
  • 潍坊网站建设多少钱做网站seo优化
  • 南昌网站建设方案外包怎么自己做网站凑钱
  • 贵州企业展示型网站建设网站建设需要摊销吗
  • 网站建设视频教程广州哪里有正规的技能培训
  • 网站后台iis配置小程序模板消息推送规则