在工程中经常有发送邮件的任务,如果使用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 1518Apache POI是操作基于微软的OLE 2 Compoun ... -
Oracle——distinct的用法
2013-02-21 08:12 792distinct这个关键字来过滤掉多余的重复记录只保留一条,但 ... -
Spring邮件发送
2013-02-21 08:12 838以下是我对spring发送邮件的总结: 分别使用了两种方法: ... -
采用左右值编码来存储无限分级树形结构的数据库表设计
2013-02-21 08:12 1200该设计方案的优点是:只用一条查询语句即可得到某个根节点及其所有 ... -
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 1105import java.io.FileOutputStream ... -
Linux下Apache与Tomcat整合的简单方法
2011-10-04 12:07 7721、准备,下载需要的文件。这里假定你已经正确安装配置好了JDK ... -
JMX在Tomcat中的应用
2011-10-04 12:07 8578一、 JMX 简单介绍 Tomcat 从 5.0 版本开始 ... -
将多个Tomcat实例应用转为Windows服务
2011-10-04 12:07 1450有使用过Tomcat经验的朋 ... -
web.xml配置总结
2011-10-03 22:50 4322一、关于webAppRootKey的定 ... -
解决多重web应用中webapp. root重用的问题
2011-10-03 22:09 1181当在tomcate中发布多个同根的应用时,容易出现这样异常: ... -
Tomcat 组件配置简介
2011-10-03 22:07 766Tomcat 组件配置简介 ------ 本文部分内容摘自 电 ... -
Tomcat启动分析
2011-10-03 22:01 6961 - Tomcat Server的组成部 ... -
如何同时启动多个Tomcat服务器
2011-10-03 21:56 813我所用Tomcat服务器都为zip版,非安装版。以两个为例: ...
相关推荐
利用JavaMail for Android和MailSender实现发送邮件
为了使用JavaMail中的一些特色, 比如MIME类型的信件, Spring提供了MailSender的一个子接口, 即org.springframework.mail.javamail.JavaMailSender。Spring还提供了一个回调接口org.springframework.mail.javamail....
C# - MailSender 邮件发送组件源代码 (支持ESMTP, 附件) JcPersonal.Utility.MailSender
springmvc+spring+mybits+maven.邮件发送,接收,及抄送。
aspemail 4.1 是一个在asp或则vb环境中使用外部smtp服务器发送电子 邮件消息的活动服务组件。aspemail 4.1 支持多收件人,多cc, 多bcc,多附件,html格式, 内嵌图形 , 和非us ascii字符集设置. aspemail 4.1是一个完全...
它可被应用在ASP或VB程序上,用来编写发送Email的程序。 AspEmail支持多收信人、多密送人、多抄送人、多附件,HTML初始化、内嵌Images图形等功能。 AspEmail、AspJpeg、AspUpload都是Persits Software家的产品。
邮件客户端,C#实现,核心代码来自国外网站。
通过spring类,发送邮件信息!包含相应的jar包,有实例
Spring Email抽象核心接口MailSender,其实现类JavaMailSenderImpl,在其中配置邮件 服务器host,pssword,协议等 。。。。。 1.发送简单的消息 SimpleMailMessage:发送简单的消息 2.发送丰富的消息(比如带有附件,内...
MailSender C# 一个发送邮件的类
发送邮件第三方插件
MailSender-Java 使用 Java Mail 发送简单电子邮件和附件的程序
MailSender这是一个简单的邮件发送工具,用于演示利用QBWI、Hangfire和Azure WebJobs来在后台发送邮件。
基于Android平台的Mail Sender. 代码示例: 1.普通邮件: ... import net.xfok.mail.sender.MailSender; …… private void testJMailSender(){ ... MailSender sender=new JMailSender...如使用有问题,请联系QQ:28185776
mailSender 在python中使用smtplib发送邮件emaillist.txt ====>要发送的电子邮件列表。 您必须在文件中添加单词“ end”的最后一行html.txt ===>正文电子邮件mailconfg.text ==> help
Spring 提供了一个发送电子邮件的高级抽象层,它向用户屏蔽了底层邮件系统的一些细节,同时负责低层次的代表客户端的资源处理。所以用 Spring 来发送 email 会省事很多和让发邮件变的简单许多,可以让我们更专注邮件...
18.3. 使用Spring提供的辅助类实现EJB组件 19. JMS 19.1. 简介 19.2. 使用Spring JMS 19.2.1. JmsTemplate 19.2.2. 连接工厂 19.2.3. (消息)目的地管理 19.2.4. 消息侦听容器 19.2.5. 事务管理 19.3. 发送...
程序代码(不含jar) 博文链接:https://sosuny.iteye.com/blog/465522
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
RMI Hessian、 Burlap Http Invoker <br>邮件 对于邮件发送服务的支援是由Spring的 org.springframework.mail.MailSender介面所定义,它有两个实作类别, org.springframework.mail.cos....