- 浏览: 232431 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
喵喵大神:
这已经不能用了,可以更新下。推荐个免费的天气预报API:htt ...
天气预报接口|API|城市代码 -
machanghai502:
超级赞 解决了我一下午的问题
如何修改MyEclipse自动生成POJO、DAO模板 -
Lixh1986:
终于解决了,不过不是楼主的方法。在此记录一下:使用 css 后 ...
jquery的slideUp 会闪一下 解决办法 -
Lixh1986:
没效果。.......
jquery的slideUp 会闪一下 解决办法 -
程序员之家:
你好 实现的java工程与disucz的 用户整合,但是,在注 ...
java项目同步discuz与uchome登录
最近碰到好多新手问我发送email的问题,特此整理代码如下,以供参考,不妥之处还请指出。
以我的工程为例,需以下准备工作:
1.spring2.5.jar
2.activation.jar
3.velocity-1.6.jar
接下来就是写代码了。
1.封装邮件发送器
package com.haixu.platform.pub; import java.util.Map; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.exception.VelocityException; import org.springframework.core.io.ClassPathResource; import org.springframework.mail.MailException; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.ui.velocity.VelocityEngineUtils; /** * 邮件发送器 */ public class MailUtil { protected final Log log = LogFactory.getLog(getClass()); private JavaMailSender javaMailSender; private VelocityEngine velocityEngine; private String from; private String title; private String encoding; private String templateLocation; private String[] toEmails; private Map<String,String> model; public boolean send(){ try { MimeMessage msg = javaMailSender.createMimeMessage(); MimeMessageHelper message = new MimeMessageHelper(msg, true, "UTF-8"); message.setFrom(from); message.setSubject(title); message.setTo(toEmails); message.setText(getMessage(), true); // 如果发的不是html内容去掉true参数 // message.addInline("myLogo",new ClassPathResource("img/mylogo.gif")); // message.addAttachment("myDocument.pdf", new ClassPathResource("doc/myDocument.pdf")); javaMailSender.send(msg); } catch (MessagingException e) { e.printStackTrace(); if(log.isWarnEnabled()) { log.warn("邮件信息导常! 邮件标题为: "+title); } return false; } catch (MailException me) { me.printStackTrace(); if(log.isWarnEnabled()) { log.warn("发送邮件失败! 邮件标题为: "+title); } return false; } return true; } /** * 邮件模板中得到信息 * @return 返回特发送的内容 */ private String getMessage() { try { return VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, templateLocation, encoding, model); } catch (VelocityException e) { e.printStackTrace(); log.error("邮件模板读取失败!邮件标题为: "+title); } return ""; } private String[] createToEmail(String to) { return new String[] {to}; } public void setToEmail(String to) { setToEmails(createToEmail(to)); } public void setJavaMailSender(JavaMailSender javaMailSender) { this.javaMailSender = javaMailSender; } public void setVelocityEngine(VelocityEngine velocityEngine) { this.velocityEngine = velocityEngine; } public void setEncoding(String encoding) { this.encoding = encoding; } public void setModel(Map<String,String> model) { this.model = model; } public void setTemplateLocation(String templateLocation) { this.templateLocation = templateLocation; } public void setTitle(String title) { this.title = title; } public void setToEmails(String[] toEmails) { this.toEmails = toEmails; } public void setFrom(String from) { this.from = from; } public String getTemplateLocation() { return templateLocation; } }
2.spring配置文件,applictionContext-mail.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- 属性文件加载 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <!-- <value>classpath:mail.properties</value> --> <value>/WEB-INF/properties/mail.properties</value> </list> </property> </bean> <!-- 邮件发送器 --> <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> </props> </property> </bean> <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean"> <property name="resourceLoaderPath" value="classpath:velocity"></property> </bean> <bean id="templateMail" class="com.haixu.platform.pub.MailUtil"> <property name="javaMailSender" ref="mailSender"></property> <property name="from" value="${mail.from}"></property> <property name="encoding" value="UTF-8"></property> <property name="templateLocation" value="hello.vm"></property> <property name="velocityEngine" ref="velocityEngine"></property> <property name="title" value="www.cpuele.com"></property> </bean> </beans>
说明:模板文件放到classpath的velocity目录下,可自行改。
3.发送者邮件信息,mail.properties(WEB-INF下):
mail.from=yourname@gmail.com mail.host=smtp.gmail.com mail.password=yourpassword mail.smtp.auth=true mail.smtp.timeout=25000 mail.username=yourname
4.模板文件,hello.vm(classpath的velocity目录下):
${username},您好,欢迎来到恒特电器!
5.测试Demo
MailUtil mailUtil = (MailUtil) SpringToolListener.getApplicationContext().getBean("templateMail"); Map<String, String> data = new HashMap<String, String>(); data.put("username", "村长"); mailUtil.setTemplateLocation("hello.vm"); mailUtil.setModel(data); mailUtil.setToEmail("hengte@cpuele.com"); mailUtil.setTitle("mail with veloctiy and spring"); mailUtil.send();
注意:SpringToolListener是我自己的工具类,可将上述代码替换为MailUtil mailUtil = (MailUtil) context.getBean("templateMail");
tomcat下测试成功。
- activation.jar (61.5 KB)
- 下载次数: 4
- velocity-1.6.4.jar (411.5 KB)
- 下载次数: 9
发表评论
-
Spring 事务不回滚的解决办法
2012-02-12 02:16 17216Spring 事务不回滚的问题关键是:不能对该异常用try.. ... -
Cannot load 32-bit SWT libraries on 64-bit JVM解决方案
2011-11-13 12:27 13827win7 64-bit下,Eclipse运行SWT程序报错:C ... -
Tomcat6/7 SSI配置
2011-07-09 15:21 1226在$CATALINA_BASE/conf/servlet.x ... -
天气预报接口|API|城市代码
2011-06-27 11:36 7375根据 下面的接口可获得 ... -
BoneCP,Proxool,DBCP,C3P0 参数介绍
2011-04-19 06:32 2312DBCP,C3P0,Proxool,BoneCP ... -
Flash Builder 4 注册码|序列号|破解版
2011-04-11 22:45 2551Flash Builder 4的注册码 几个目前可用的注册码: ... -
PowerDesigner连接数据库出现错误: Non SQL Error : Could not load class
2011-03-30 11:51 1611PowerDesigner连接数据库出现错误: Non SQL ... -
BETA,RC,ALPHA软件版本号介绍
2010-09-06 09:38 1099版本号:V(Version): ... -
PowerDesigner 15下载(破解)
2010-09-03 14:16 3717PowerDesign是Sybase推出的主打数据库设计工具。 ... -
Rational rose 2003安装破解过程
2010-09-02 16:06 1554一、下载rational rose 2003英文版 【=== ... -
java项目同步discuz与uchome登录
2010-08-29 23:24 3173本项目提供完全免费的JAVA版Discuz Ucenter A ... -
AJP
2010-08-29 15:26 1030由于tomcat的html和图片解析功能相对其他服务器如apc ... -
Spring发送邮件-java发送email
2010-08-23 11:43 3999最近碰到好多新手问我发送email的问题,特此整理代码如下,以 ... -
Jmagick压缩高质量图片
2010-08-19 17:05 1308图片处理需要使用ImageMagick时,需要做如下配置: ... -
FusionCharts link中文乱码 字体大小 解决办法 - FusionCharts参数说明
2010-07-27 18:36 3226功能特性animation ... -
DBCP连接池配置参数说明及优化
2010-05-18 10:46 2851在配置DBCP连接池时,主 ... -
验证码无法显示:Could not initialize class sun.awt.X1 解决方案
2010-05-13 15:25 1773网站验证码突然无法显示,并报如下错误。 Caused by: ... -
EL表达式 访问集合和String的内置方法(size,contains,indexOf,endWith...)
2010-05-06 10:08 4327称呼 Functions 标签库为标签库,倒不如称呼其为函数库 ... -
互联网常见Open API文档资源
2010-04-14 09:18 1204所谓的开放API(OpenAPI)是服务型网站常见的一种应 ... -
Derby数据库使用简介-Derby入门
2010-04-10 08:52 2328Derby数据库是由Apache下的一个开源的DB项目,与其它 ...
相关推荐
通过以上步骤,你就可以在Java应用中使用Spring发送邮件了。当然,实际的邮件发送可能更复杂,涉及HTML内容、附件、多部分消息等,可以使用`MimeMessage`和`MimeMessageHelper`类来构建复杂的邮件结构。例如,添加...
Spring框架提供了一种优雅的方式来处理这个任务,它整合了JavaMailSender接口和JavaMail API,使得在Java应用程序中发送邮件变得更加简单。让我们深入探讨这个主题。 首先,JavaMail API是Java用来处理邮件收发的...
通过集成这个库,"email-spring-boot-starter"使Spring Boot应用能够轻松发送邮件。 在使用这个starter时,首先需要在项目的pom.xml或build.gradle文件中引入依赖。对于Maven项目,可以在dependencies节点下添加...
EWS是一种基于SOAP协议的API,用于与Microsoft Exchange Server交互,包括发送邮件。如果你的应用需要与Exchange服务器集成,EWS是个不错的选择。使用EWS,你需要添加ews-java-api库到`pom.xml`: ```xml ...
- 在需要发送邮件的地方调用邮件发送服务,传入邮件信息对象,即可完成邮件的发送。 ```java // 调用邮件发送服务 boolean result = emailSendService.send("receiver@example.com", "邮件主题", "邮件正文"); ...
下面将详细介绍如何使用Spring发送邮件。 首先,我们需要在项目中引入Spring的邮件支持。这通常通过添加`spring-context-support`依赖来完成,该依赖包含了处理邮件发送所需的类。在Maven项目中,可以在pom.xml文件...
Java发送邮件是常见的系统集成需求,它涉及到网络通信、邮件协议和编程技术。在这个主题中,我们将探讨两种方法:一种是通过Spring Cloud实现,另一种是使用静态方法直接调用JavaMail API。这两种方法都有其独特的...
以下是一个简单的示例,展示了如何在Spring中使用JavaMailSenderImpl发送邮件: ```java @Autowired private JavaMailSender emailSender; public void sendEmail() { SimpleMailMessage message = new ...
通过这个示例,你可以了解到Spring Boot如何通过自动配置简化邮件服务的集成,以及如何使用JavaMailSender接口发送邮件。当然,实际应用中可能需要处理更复杂的邮件场景,例如发送HTML邮件、添加附件等,但这个基础...
有了JavaMailSender,我们就可以在业务逻辑中轻松发送邮件了。以下是一个简单的示例,展示如何发送一封纯文本邮件: ```java @Service public class MailService { @Autowired private JavaMailSender ...
在Java开发中,Spring框架提供了一种方便的方式来发送电子邮件,这就是SpringMail模块。SpringMail使得在应用程序中集成邮件服务变得更加简单,它支持多种功能,包括发送带有多个附件、多接收者(包括抄送和暗送)的...
在本场景中,我们将利用Spring来管理JavaMail Sender对象,以便于发送邮件。 #### Velocity模板引擎 Velocity是一个基于Java的模板引擎,它允许开发者通过简单的模板语言来生成HTML网页、XML数据或者普通的文本。在...
使用Spring发送邮件的基本步骤如下: 1. 添加Spring核心库和相关的邮件发送库(如JavaMail API)到项目依赖中。 2. 在Spring配置文件(如`email-163.xml`)中配置邮件服务器的相关信息,如用户名、密码、SMTP服务器...
该项目依赖于无模板模块it.ozimov:spring-boot-email-core ,该模块提供了核心功能(例如,发送电子邮件,调度和确定优先级,持久性)。 由于它是无模板的,因此它不提供用于通过模板引擎生成电子邮件正文的服务的...
在本文中,我们将深入探讨如何使用Spring Boot框架与Amazon Simple Email Service (AWS SES)集成,以便在Java应用程序中实现电子邮件的发送功能。AWS SES是一种经济高效的电子邮件服务,它允许开发者发送大量邮件,...
Java发送邮件是常见的系统集成需求,Spring框架中的JavaMailSender接口提供了一种便捷的方式来实现这一功能。本教程将详细介绍如何使用Spring MVC与JavaMailSender发送邮件,并提供两种发送方式。 首先,我们需要...
标题“Spring整合Quartz定时发送邮件”涉及到两个主要技术领域:Spring框架和Quartz调度库。这个场景的应用是使用Quartz来安排任务,而Spring则提供了集成环境和邮件服务支持。 首先,Quartz是一个开源的作业调度...
首先,Spring框架提供了`JavaMailSender`接口,它是发送邮件的核心接口。通过实现这个接口,我们可以配置SMTP服务器的相关参数,如主机地址、端口、用户名、密码等,来设置邮件发送的环境。`JavaMailSender`提供了...
本教程将详细讲解如何使用Spring发送邮件,以及在遇到问题时如何排查。 首先,我们需要在Spring项目中引入邮件服务相关的依赖。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml <groupId>org.spring...