- 浏览: 5826738 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (890)
- WindowsPhone (0)
- android (88)
- android快速迭代 (17)
- android基础 (34)
- android进阶 (172)
- android高级 (0)
- android拾遗 (85)
- android动画&效果 (68)
- Material Design (13)
- LUA (5)
- j2me (32)
- jQuery (39)
- spring (26)
- hibernate (20)
- struts (26)
- tomcat (9)
- javascript+css+html (62)
- jsp+servlet+javabean (14)
- java (37)
- velocity+FCKeditor (13)
- linux+批处理 (9)
- mysql (19)
- MyEclipse (9)
- ajax (7)
- wap (8)
- j2ee+apache (24)
- 其他 (13)
- phonegap (35)
最新评论
-
Memories_NC:
本地lua脚本终于执行成功了,虽然不是通过redis
java中调用lua脚本语言1 -
ZHOU452840622:
大神://处理返回的接收状态 这个好像没有监听到 遇 ...
android 发送短信的两种方式 -
PXY:
拦截部分地址,怎么写的for(int i=0;i<lis ...
判断是否登录的拦截器SessionFilter -
maotou1988:
Android控件之带清空按钮(功能)的AutoComplet ...
自定义AutoCompleteTextView -
yangmaolinpl:
希望有表例子更好。。。,不过也看明白了。
浅谈onInterceptTouchEvent、onTouchEvent与onTouch
有时候当我们注册完的时候系统会提示有一封邮件发送到了你的邮箱,如何做呢?
就要用到spring+velocity+javamail这3个玩意,其实只用了spring,因为其他2个都被spring集成了。
先看代码
上面这个类实际上是个发送邮件的工具类,我们只要设置好参数后调用想要的sendXXX()就可以了。如下:
下面的是spring配置
mail.vm内容如下:
mail.properties如下:
就要用到spring+velocity+javamail这3个玩意,其实只用了spring,因为其他2个都被spring集成了。
先看代码
package com.worthtech.app.util; import java.io.File; import java.util.Map; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.apache.velocity.app.VelocityEngine; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.ui.velocity.VelocityEngineUtils; public class MailSenderService { private JavaMailSender mailSender;//spring配置中定义 private VelocityEngine velocityEngine;//spring配置中定义 private SimpleMailMessage simpleMailMessage;//spring配置中定义 private String from; private String to; private String subject; private String content; private String templateName; // 是否需要身份验证 private boolean validate = false; public JavaMailSender getMailSender() { return mailSender; } public void setMailSender(JavaMailSender mailSender) { this.mailSender = mailSender; } public VelocityEngine getVelocityEngine() { return velocityEngine; } public void setVelocityEngine(VelocityEngine velocityEngine) { this.velocityEngine = velocityEngine; } /** * 发送模板邮件 * */ public void sendWithTemplate(Map model){ mailSender = this.getMailSender(); simpleMailMessage.setTo(this.getTo()); //接收人 simpleMailMessage.setFrom(simpleMailMessage.getFrom()); //发送人,从配置文件中取得 simpleMailMessage.setSubject(this.getSubject()); String result = null; try { result = VelocityEngineUtils.mergeTemplateIntoString(this.getVelocityEngine(), this.getTemplateName(), "UTF-8",model); } catch (Exception e) {} simpleMailMessage.setText(result); mailSender.send(simpleMailMessage); } /** * 发送普通文本邮件 * */ public void sendText(){ mailSender = this.getMailSender(); simpleMailMessage.setTo(this.getTo()); //接收人 simpleMailMessage.setFrom(simpleMailMessage.getFrom()); //发送人,从配置文件中取得 simpleMailMessage.setSubject(this.getSubject()); simpleMailMessage.setText(this.getContent()); mailSender.send(simpleMailMessage); } /** * 发送普通Html邮件 * */ public void sendHtml(){ mailSender = this.getMailSender(); MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage); try { messageHelper.setTo(this.getTo()); messageHelper.setFrom(simpleMailMessage.getFrom()); messageHelper.setSubject(this.getSubject()); messageHelper.setText(this.getContent(),true); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } mailSender.send(mimeMessage); } /** * 发送普通带一张图片的Html邮件 * */ public void sendHtmlWithImage(String imagePath){ mailSender = this.getMailSender(); MimeMessage mimeMessage = mailSender.createMimeMessage(); try { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true); messageHelper.setTo(this.getTo()); messageHelper.setFrom(simpleMailMessage.getFrom()); messageHelper.setSubject(this.getSubject()); messageHelper.setText(this.getContent(),true); // Content="<html><head></head><body><img src=\"cid:image\"/></body></html>"; //图片必须这样子:<img src='cid:image'/> FileSystemResource img = new FileSystemResource(new File(imagePath)); messageHelper.addInline("image",img); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } mailSender.send(mimeMessage); } /** * 发送普通带附件的Html邮件 * */ public void sendHtmlWithAttachment(String filePath){ mailSender = this.getMailSender(); MimeMessage mimeMessage = mailSender.createMimeMessage(); try { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true); messageHelper.setTo(this.getTo()); messageHelper.setFrom(simpleMailMessage.getFrom()); messageHelper.setSubject(this.getSubject()); messageHelper.setText(this.getContent(),true); FileSystemResource file = new FileSystemResource(new File(filePath)); // System.out.println("file.getFilename==="+file.getFilename()); messageHelper.addAttachment(file.getFilename(),file); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } mailSender.send(mimeMessage); } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getTo() { return to; } public void setTo(String to) { this.to = to; } public String getTemplateName() { return templateName; } public void setTemplateName(String templateName) { this.templateName = templateName; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public boolean isValidate() { return validate; } public void setValidate(boolean validate) { this.validate = validate; } public SimpleMailMessage getSimpleMailMessage() { return simpleMailMessage; } public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) { this.simpleMailMessage = simpleMailMessage; } }
上面这个类实际上是个发送邮件的工具类,我们只要设置好参数后调用想要的sendXXX()就可以了。如下:
//注册完马上发送邮件 MailSenderService mailSender=this.getMailsenderService(); mailSender.setTo(form.getEmail()); mailSender.setSubject("来自worthtech的邮件"); mailSender.setTemplateName("mail.vm");//设置的邮件模板 Map model=new HashMap(); model.put("username", form.getUserName()); String url=request.getRequestURL().toString(); url=url.substring(0, url.lastIndexOf("/")); model.put("url", url); model.put("email", "gjni@worthtech.net"); mailSender.sendWithTemplate(model); System.out.println("邮件发送成功!");
下面的是spring配置
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="${mail.host}"/> <property name="username" value="${mail.username}"/> <property name="password" value="${mail.password}"/> <property name="defaultEncoding" value="UTF-8"></property> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">${mail.smtp.auth}</prop> <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop> <!-- <prop key="mail.smtp.starttls.enable">true</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> <prop key="mail.smtp.socketFactory.fallback">false</prop> --> </props> </property> </bean> <bean id="simpleMailMessage" class="org.springframework.mail.SimpleMailMessage" singleton="false"> <property name="from"> <value>${mail.default.from}</value> </property> </bean> <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean"> <property name="velocityProperties"> <props> <prop key="resource.loader">class</prop> <prop key="class.resource.loader.class"> org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader </prop> <prop key="velocimacro.library"></prop> </props> </property> </bean> <bean id="mailsenderService" class="com.worthtech.app.util.MailSenderService"> <property name="mailSender" ref="mailSender" /> <property name="simpleMailMessage" ref="simpleMailMessage" /> <property name="velocityEngine" ref="velocityEngine" /> </bean>
mail.vm内容如下:
亲爱的${username} 欢迎加入worthtech! 当您收到这封信的时候,您已经可以正常登录了。 请点击链接登录首页:${url} 如果您的email程序不支持链接点击,请将上面的地址拷贝至您的浏览器(如IE)的地址栏进入。 如果您还想申请管理员权限,可以联系管理员${email} 我们对您产生的不便,深表歉意。 希望您在worthtech度过快乐的时光! ----------------------- (这是一封自动产生的email,请勿回复。)
mail.properties如下:
mail.host=218.000.000.234 mail.port=25 mail.username=gjni@worthtech.net mail.password=xxxxxxxx mail.smtp.auth=true mail.smtp.timeout=25000 mail.default.from=gjni@worthtech.net
发表评论
-
浏览器报:org.springframework.beans.factory.NoSuchBeanDefinitionException
2010-07-02 12:04 3466org.springframework.beans.facto ... -
使用Spring计时器和velocity模板定时生成静态html/jsp文件
2010-06-30 14:18 6169当一个页面不是经常需要更新的话,就需要为它定时生成一个静态文件 ... -
事务隔离级别
2010-01-28 14:58 1914在JDBC操作中,为了有效 ... -
spring的2种加载方式:ContextLoaderListener和ContextLoaderPlugIn
2010-01-21 10:34 5828今天有一个朋友问了我一个问题,他使用的是Hibernate/S ... -
spring+struts的集成(第二种集成方案,推荐)
2010-01-19 16:03 1868spring+struts的集成(第二种集成方案) 原理:将业 ... -
spring+struts的集成(第一种集成方案)
2010-01-19 15:43 1775spring+struts的集成(第一种集成方案,不常用,因为 ... -
spring,hibernate集成
2010-01-19 14:40 27761、声明式事务配置 * 配置SessionFactory ... -
spring对AOP的支持(JDK的动态代理实现AOP和CGLIB实现AOP)
2010-01-19 13:06 23951、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实 ... -
spring对AOP的支持(采用配置文件的方式)
2010-01-19 12:42 1900定义切面类: public cla ... -
spring对AOP的支持(采用Annotation的方式)
2010-01-19 12:04 1935步骤: 1、spring依赖库 * SPRING_HOME/ ... -
根据名称或类型自动装配(为了减少配置量)
2010-01-19 10:39 1724PS:开发阶段不建议使用自动装配,以为它会使得类与类之间的依赖 ... -
spring Bean的作用域(singleton&prototype)
2010-01-19 10:13 1898spring Bean的作用域: scope可以取值: ... -
spring中自定义属性编辑器CustomEditorConfigurer
2010-01-19 09:51 5238什么是属性编辑器,作用? * 自定义属性编辑器,spring ... -
CharacterEncodingFilter
2009-11-02 16:03 3387很简单很实用的一个过滤器,当前台JSP页面和JAVA代码中使用 ... -
ContextLoaderListener
2009-11-02 15:48 2203ContextLoaderListener的作用 ... -
OpenSessionInViewFilter类作用
2009-11-02 15:41 2985延迟加载过滤器 Hibernate 允许对关联对象、属性进行 ... -
spring的bean和类之间的关系
2009-09-25 21:45 2223class A{} class B{} class C{} ... -
用spring发邮件验证失败问题2
2009-09-24 19:53 2303[See nested exception: org.spri ... -
javax.mail.MessagingException: Unknown SMTP host: mail.163.com
2009-09-24 15:56 12929javax.mail.MessagingException: ... -
用spring发邮件验证失败问题
2009-09-24 14:40 9775用spring发邮件验证失败问题 [See nested e ...
相关推荐
在本场景中,我们将利用Spring来管理JavaMail Sender对象,以便于发送邮件。 #### Velocity模板引擎 Velocity是一个基于Java的模板引擎,它允许开发者通过简单的模板语言来生成HTML网页、XML数据或者普通的文本。在...
这样,当发送邮件时,Spring会使用这些模板并替换变量,生成最终的邮件内容。 为了在Spring中集成Velocity,我们需要添加以下依赖: 1. `velocity-engine-core`:Velocity的核心库。 2. `velocity-tools-view`:...
在这个实例中,我们可能有一个名为`SendMailAction`的类,该类中包含了发送邮件的相关逻辑。Struts2配置文件(`struts.xml`)需要进行相应的配置,以映射HTTP请求到这个Action。 Spring3.0则扮演了服务层的角色,它...
而“spring+sendmail+模板+properties+vm”这一主题则涉及到Spring框架中关于电子邮件发送以及使用模板和配置文件的部分。以下是这些知识点的详细说明: 1. **Spring Sendmail**: Spring框架提供了`JavaMailSender`...
在Spring框架中,我们经常需要实现发送邮件的功能,这通常涉及到使用模板来生成动态内容,以便提供更加个性化和丰富的邮件信息。FreeMarker和Velocity是两个常见的Java模板引擎,它们可以帮助我们将后端数据与HTML...
JavaMail API是Java中用于发送邮件的基础库,虽然它可以完成邮件发送,但其API接口相对复杂,编写代码时需要处理较多细节。Apache Commons Email库则提供了一种更简洁的方式来发送邮件,它简化了邮件构造和发送的...
2. Session:JavaMail API中的Session对象是发送邮件的核心,它包含了邮件服务器的相关配置信息。 3. Message:Message对象代表一封邮件,包含了邮件的主题、正文、附件等信息。 4. Transport:Transport类负责将...
比如,你可以使用`org.springframework.mail.javamail.JavaMailSender`接口来发送邮件,它简化了邮件的构造和发送过程。同时,Spring还支持使用模板引擎(如FreeMarker或Velocity)来动态生成邮件内容。 使用这两个...
- **定时任务**:如果需要定期发送邮件,可以结合Quartz或Spring的定时任务功能。 - **邮件验证**:在用户注册或更改重要设置时,发送验证邮件以提高安全性。 - **邮件队列**:对于大量发送的邮件,可以考虑使用...
Spring的核心邮件发送接口是`MailSender`,而在Spring 3.0及以后的版本中,提供了一个实现类`JavaMailSenderImpl`,它是发送邮件的主要工具。你可以通过配置文件来定义这个bean,或者直接在代码中实例化它。 ```...
首先,JavaMail API是Java中发送邮件的核心库,这里有两个版本的库文件:javax.mail-1.5.1.jar和javax.mail.jar。这两个版本都提供了处理SMTP(简单邮件传输协议)和其他邮件协议的功能。在使用JavaMail API时,我们...
开发过程中可能还会用到其他Java库,如Apache Commons Net用于SMTP通信,Velocity或Freemarker作为模板引擎,Spring框架进行依赖注入和事务管理。 【压缩包子文件的文件名称列表】中的"email"可能包含以下组件: 1...
- 发送邮件:使用`Transport`类的`send()`方法发送邮件。 2. **SMTP协议与ESMTP** - SMTP(Simple Mail Transfer Protocol)是用于在互联网上传输邮件的标准协议。JavaMail API支持ESMTP(Extended SMTP),提供...
14.4.3. 创建模板 14.4.4. 高级配置 14.4.4.1. velocity.properties 14.4.4.2. FreeMarker 14.4.5. 绑定支持和表单处理 14.4.5.1. 用于绑定的宏 14.4.5.2. 简单绑定 14.4.5.3. 表单输入生成宏 14.4.5.4. 重载HTML...
该库为第三方工具提供了支持,如缓存(ehcache)、连接管理(JCA)、监控管理(JMX)、邮件发送(JavaMail/COS Mail)、定时任务调度(Timer/Quartz)等。 ##### (11) spring-web.jar 此库提供了Spring Web的支持,...
spring-boot-starter-mail提供了Email发送功能,而spring-boot-starter-velocity提供了模板引擎velocity的支持。 三、 配置Email发送功能实例 要配置Email发送功能实例,需要在application.properties文件中添加...
14.4. Velocity和FreeMarker 14.4.1. 需要的资源 14.4.2. Context 配置 14.4.3. 创建模板 14.4.4. 高级配置 14.4.5. 绑定支持和表单处理 14.5. XSLT 14.5.1. 写在段首 14.5.2. 小结 14.6. 文档视图(PDF/...
Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack Thierry Templier Erwin ...
此外,安全方面可能有Spring Security或Apache Shiro进行权限控制,邮件服务可能通过JavaMail发送订单确认邮件,日志管理可能使用Log4j或SLF4J。 总的来说,SSH实现的商城项目展示了Java Web开发的全貌,从用户界面...
在IT领域,电邮服务是系统间通信、用户通知或批量发送邮件的重要组成部分。本项目的核心目标是实现高效、稳定且可扩展的邮件服务。 首先,我们可以从项目名"email-service-master"推测,这是一个主分支或者完整的...