在工程中经常有发送邮件的任务,如果使用JavaMail来发送邮件,用到的代码较多,过程和细节也相对复杂,而使用Spring的MailSender能相对简单方便些,这样使程序员能更快捷的完成邮件发送任务。下面请看示例代码:
注意在执行代码前,请确认已经将activation.jar,commons-logging-1.0.4.jar,mail.jar和spring.jar载入工程。
四.使用示例
注意在执行代码前,请确认已经将activation.jar,commons-logging-1.0.4.jar,mail.jar和spring.jar载入工程。
package com.heyang.tool.mailsender; import org.springframework.mail.MailSender; import org.springframework.mail.SimpleMailMessage; /** * 抽象父类,定义了发送邮件的函数,取得getMailSender函数留待子类实现 * @author: 何杨(heyang78@gmail.com) * @date: 2008-8-6-下午03:11:38 */ public abstract class BaseMailSender{ protected String userName; protected String password; protected String stmpServer; protected String senderEmailAddr; /** * 取得邮件发送者,留待子类实现 * @return */ protected abstract MailSender getMailSender(); /** * 发送邮件 * @param from :寄信人邮件地址 * @param to :收信人邮件地址 * @param subject :邮件标题 * @param concept :邮件内容 */ public final void sendMail(String to,String subject,String concept){ SimpleMailMessage msg=new SimpleMailMessage(); msg.setFrom(senderEmailAddr); msg.setTo(to); msg.setSubject(subject); msg.setText(concept); MailSender sender=getMailSender(); sender.send(msg); } public void setPassword(String password) { this.password = password; } public void setSenderEmailAddr(String senderEmailAddr) { this.senderEmailAddr = senderEmailAddr; } public void setStmpServer(String stmpServer) { this.stmpServer = stmpServer; } public void setUserName(String userName) { this.userName = userName; } } 二.实现类MailSenderImpl代码。 package com.heyang.tool.mailsender; import java.util.Properties; import org.springframework.mail.MailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; /** * 邮件发送者实现类 * @author: 何杨(heyang78@gmail.com) * @date: 2008-8-6-下午03:14:49 */ public class MailSenderImpl extends BaseMailSender{ /** * 取得邮件发送者 * @return */ protected MailSender getMailSender(){ JavaMailSenderImpl sender=new JavaMailSenderImpl(); // 邮件发送者邮箱SMTP服务器 sender.setHost(stmpServer); // 邮件发送者邮箱用户 sender.setUsername(userName); // 邮件发送者邮箱密码 sender.setPassword(password); // 客户端认证设置 Properties props = new Properties(); // 同时通过验证 props.put("mail.smtp.auth", "true"); // 存储发送邮件服务器的信息 props.put("mail.smtp.host", stmpServer); // 服务器端认证设置 sender.setJavaMailProperties(props); return sender; } }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="mailSender" class="com.heyang.tool.mailsender.MailSenderImpl" singleton="false"> <property name="userName" value="XXXXXXXXXX"/> <property name="password" value="XXXXXXXX"/> <property name="stmpServer" value="smtp.163.com"/> <property name="senderEmailAddr" value="XXXX@XXX.CCC"/> </bean> </beans>
四.使用示例
package com.heyang.util; import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.heyang.tool.mailsender.BaseMailSender; import com.heyang.tool.mailsender.MailSenderImpl; /** * 异步邮件发送实用类(使用Spring的邮件发送形式) * @author: 何杨(heyang78@gmail.com) * @date: 2008-8-6-下午02:43:22 */ public final class MailUtil { /** * 发送邮件 * @param emailAddr:收信人邮件地址 * @param mailTitle:邮件标题 * @param mailConcept:邮件内容 */ public static void sendMail(final String emailAddr, final String mailTitle, final String mailConcept) { Runnable thread=new Runnable(){ public void run(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml"); BaseMailSender sender=(MailSenderImpl)context.getBean("mailSender"); sender.sendMail(emailAddr, mailTitle, mailConcept); } }; new Thread(thread).start(); } /** * 向系统维护者发送邮件 * @param mailTitle * @param mailConcept */ public static void sendMailToSupporters(final String mailTitle, final String mailConcept){ Runnable thread=new Runnable(){ public void run(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml"); SupportTeam supportTeam=(SupportTeam)context.getBean("supportTeam"); BaseMailSender sender=(MailSenderImpl)context.getBean("mailSender"); List<String> mails=supportTeam.getSupporterEmails(); for(String mailAddr:mails){ sender.sendMail(mailAddr, mailTitle, mailConcept); } } }; new Thread(thread).start(); } /** * 测试邮件发送 * @param args */ public static void main(String[] args){ MailUtil.sendMailToSupporters("title_spring", "concept_spring"); } }
发表评论
-
Apache POI简介
2011-10-19 22:56 1558Apache POI是操作基于微软的OLE 2 Compoun ... -
Oracle——distinct的用法
2013-02-21 08:12 856distinct这个关键字来过滤掉多余的重复记录只保留一条,但 ... -
Spring邮件发送
2013-02-21 08:12 896以下是我对spring发送邮件的总结: 分别使用了两种方法: ... -
采用左右值编码来存储无限分级树形结构的数据库表设计
2013-02-21 08:12 1291该设计方案的优点是:只用一条查询语句即可得到某个根节点及其所有 ... -
BIRT Viewer 2.2 参数设置详解
2011-10-04 12:28 0BIRT Viewer 2.2 参数设置详 ... -
BIRT部署并利用API生成PDF
2011-10-04 12:27 0Birt报表设计步骤: 1、下载birt all in one ... -
TOMCAT集群配置
2011-10-04 12:20 0我的运行环境:Windows2003 Server SP4 + ... -
POI中文编码及多工作表输出
2011-10-04 12:06 1192import java.io.FileOutputStream ... -
Linux下Apache与Tomcat整合的简单方法
2011-10-04 12:07 8161、准备,下载需要的文件。这里假定你已经正确安装配置好了JDK ... -
JMX在Tomcat中的应用
2011-10-04 12:07 8702一、 JMX 简单介绍 Tomcat 从 5.0 版本开始 ... -
将多个Tomcat实例应用转为Windows服务
2011-10-04 12:07 1540有使用过Tomcat经验的朋 ... -
web.xml配置总结
2011-10-03 22:50 4365一、关于webAppRootKey的定 ... -
解决多重web应用中webapp. root重用的问题
2011-10-03 22:09 1271当在tomcate中发布多个同根的应用时,容易出现这样异常: ... -
Tomcat 组件配置简介
2011-10-03 22:07 823Tomcat 组件配置简介 ------ 本文部分内容摘自 电 ... -
Tomcat启动分析
2011-10-03 22:01 7301 - Tomcat Server的组成部 ... -
如何同时启动多个Tomcat服务器
2011-10-03 21:56 900我所用Tomcat服务器都为zip版,非安装版。以两个为例: ...
相关推荐
这个源码应该包含了一个实现了MailSender接口的类,可能使用了线程池进行异步发送,以及如何构建邮件模板和处理邮件列表的逻辑。通过阅读和分析源码,你可以学习到如何在Spring中实现批量邮件发送,并从中获取灵感...
SpringMail 是一个基于 Java 的库,它为使用 JavaMail API 发送电子邮件提供了便捷的抽象层。这个框架使得在 Spring 应用程序中集成邮件服务变得简单。本文将深入探讨 SpringMail 的核心概念、配置以及如何在实际...
此外,Spring还提供了异步发送邮件的功能,通过`AsyncMailSender`接口和`@Async`注解,可以避免邮件发送阻塞主线程,提高应用性能。 总结来说,Spring框架通过`JavaMailSender`接口提供了强大且灵活的邮件发送功能...
Spring Mail 是一个基于Java的库,它为使用JavaMail API发送电子邮件提供了简洁的抽象层。在Spring框架中,Spring Mail简化了配置和邮件发送过程,使得开发者能够更专注于邮件内容的构建,而不是处理复杂的SMTP...
Spring Email抽象核心接口MailSender,其实现类JavaMailSenderImpl,在其中配置邮件 服务器host,pssword,协议等 。。。。。 1.发送简单的消息 SimpleMailMessage:发送简单的消息 2.发送丰富的消息(比如带有附件,内...
Spring Boot提供了`JavaMailSender`接口,我们可以通过实现该接口的Bean来定制邮件发送逻辑。以下是一个简单的示例: ```java import org.springframework.context.annotation.Bean; import org.springframework....
Spring Boot还提供了`MailSender`的抽象层,可以通过模板引擎(如Thymeleaf)动态生成邮件内容,提供更灵活的邮件发送能力。 最后,我们讨论**定时任务**。Spring Boot集成Quartz或Spring自己的`@Scheduled`注解来...
对于更复杂的应用场景,还可以使用开源库,如Apache Commons Email或Spring框架中的MailSender,它们提供了更友好的API来简化邮件发送操作。 在提供的标签"源码 工具"中,我们可以理解到,深入学习和理解JavaMail ...
* Spring Boot,Velocity * myBatis * 登陆/注册 * 前缀树 * Redis * 异步框架 * 邮件,排序算法 * 推拉timeline * solr搜索 还可以做的:去重,敏感哈希算法,文本距离 * 单元测试/部署 压力测试...