在工程中经常有发送邮件的任务,如果使用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 1548Apache POI是操作基于微软的OLE 2 Compoun ... -
Oracle——distinct的用法
2013-02-21 08:12 840distinct这个关键字来过滤掉多余的重复记录只保留一条,但 ... -
Spring邮件发送
2013-02-21 08:12 887以下是我对spring发送邮件的总结: 分别使用了两种方法: ... -
采用左右值编码来存储无限分级树形结构的数据库表设计
2013-02-21 08:12 1282该设计方案的优点是:只用一条查询语句即可得到某个根节点及其所有 ... -
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 1173import java.io.FileOutputStream ... -
Linux下Apache与Tomcat整合的简单方法
2011-10-04 12:07 8091、准备,下载需要的文件。这里假定你已经正确安装配置好了JDK ... -
JMX在Tomcat中的应用
2011-10-04 12:07 8679一、 JMX 简单介绍 Tomcat 从 5.0 版本开始 ... -
将多个Tomcat实例应用转为Windows服务
2011-10-04 12:07 1522有使用过Tomcat经验的朋 ... -
web.xml配置总结
2011-10-03 22:50 4355一、关于webAppRootKey的定 ... -
解决多重web应用中webapp. root重用的问题
2011-10-03 22:09 1254当在tomcate中发布多个同根的应用时,容易出现这样异常: ... -
Tomcat 组件配置简介
2011-10-03 22:07 817Tomcat 组件配置简介 ------ 本文部分内容摘自 电 ... -
Tomcat启动分析
2011-10-03 22:01 7261 - Tomcat Server的组成部 ... -
如何同时启动多个Tomcat服务器
2011-10-03 21:56 885我所用Tomcat服务器都为zip版,非安装版。以两个为例: ...
相关推荐
它提供了send()方法,可以用来发送简单的文本邮件或者带有附件的复杂邮件。为了实现批量邮件发送,我们需要创建一个邮件服务类,该类将利用MailSender接口,并通过适当的方式管理邮件的队列和发送过程。 批量邮件...
它可被应用在ASP或VB程序上,用来编写发送Email的程序。 AspEmail支持多收信人、多密送人、多抄送人、多附件,HTML初始化、内嵌Images图形等功能。 AspEmail、AspJpeg、AspUpload都是Persits Software家的产品。
在上述代码中,`sendSimpleEmail`方法用于发送纯文本邮件,而`sendHtmlEmail`方法则支持发送包含HTML格式的邮件。你可以根据实际需求选择合适的方法。 为了确保邮件能够成功发送,需要注意以下几点: 1. 邮件服务器...
总的来说,Spring框架提供了强大的邮件发送支持,通过`JavaMailSender`接口和相关辅助类,开发者可以方便地实现各种邮件功能,无论是简单的文本邮件还是包含复杂格式和附件的邮件。在实际项目中,确保正确配置SMTP...
通过以上介绍,我们可以看出Persits.MailSender(即ASPEmail组件)是一款功能强大且易于使用的邮件发送工具,特别适合ASP开发人员使用。无论是基本的邮件发送需求还是更复杂的场景,该组件都能够提供良好的支持。
总结来说,Spring框架为Java应用程序提供了强大且灵活的邮件发送功能,无论是简单的文本邮件还是复杂的HTML邮件,甚至是包含附件和内嵌资源的邮件,都能通过其高级抽象层轻松实现。同时,配合模板引擎,可以有效地...
本文将深入探讨"spring线程发送邮件"这一主题,结合标签"源码"和"工具",我们将从源码层面理解Spring如何实现线程异步发送邮件,并探讨相关工具的使用。 在Spring框架中,邮件服务的实现主要依赖于`javaMailSender`...
在Android开发中,有时我们需要为用户提供发送邮件的功能,例如报告应用错误、分享内容或接收服务通知。JavaMail for Android和MailSender是两个常用的库,可以帮助我们实现这一目标。本篇文章将详细讲解如何利用这...
MailSender是一个C#编写的邮件发送组件,它提供了一个方便的接口来实现电子邮件的发送功能,包括对ESMTP(Extended Simple Mail Transfer Protocol)的支持以及添加附件的能力。ESMTP是在标准SMTP基础上的扩展,增加...
在Spring Boot应用中,利用JavaMailSender发送邮件是一种常见的需求,Spring Boot的`spring-boot-starter-mail`模块为我们提供了方便的自动化配置。首先,我们需要在项目的`pom.xml`文件中引入这个依赖: ```xml ...
使用 JavaMailSender 可以发送简单的文本邮件或复杂的 HTML 邮件。下面是一个简单的发送邮件示例: ``` @SpringBootTest public class EmailApplicationTests { @Autowired JavaMailSenderImpl mailSender; @...
为了使用JavaMail中的一些特色, 比如MIME类型的信件, Spring提供了MailSender的一个子接口, 即org.springframework.mail.javamail.JavaMailSender。Spring还提供了一个回调接口org.springframework.mail.javamail....
setInitData方法用于初始化邮件发送服务器,simpleMailSend方法用于发送普通文本邮件。 五、SendMailUtils工具类的使用方法 使用SendMailUtils工具类需要首先创建一个SendMailUtils对象,然后调用setInitData方法...
`JavaMailSenderImpl`是Spring提供的一个接口实现,用于发送电子邮件。在这个过程中,我们将深入探讨如何配置和使用`JavaMailSenderImpl`来实现邮件发送。 首先,让我们了解`JavaMailSender`接口。它是Spring Mail...
本教程将围绕如何使用Spring框架与Velocity模板引擎来实现邮件发送功能进行详细讲解。 首先,让我们理解Spring框架的邮件发送服务。Spring提供了`JavaMailSender`接口,该接口提供了发送邮件的基本方法,如`send...
在本文中,我们将深入探讨如何使用Spring框架来发送邮件,这是一个非常实用的功能,特别是在业务系统中通知用户、发送确认信息或进行客户服务时。 首先,我们需要了解Spring的邮件支持是通过`JavaMailSender`接口...
Spring框架通过其MailSender接口和JavaMailSenderImpl实现了邮件服务,使得在Java应用中发送邮件变得简单。 首先,为了在Spring应用中启用邮件服务,我们需要在配置类中添加对应的bean。这通常涉及到创建一个`...
`SimpleMailMessage`适用于简单的文本邮件,而`MimeMessage`则可以处理复杂的HTML邮件、附件等。 3. **发送邮件**:通过`JavaMailSender`的`send()`方法发送邮件。你可以传入一个`SimpleMailMessage`或`...
JavaMailSender接口是Spring提供的邮件发送API,它定义了一系列方法来配置和发送电子邮件。JavaMailSenderImpl是这个接口的默认实现,它利用JavaMail API来发送邮件。在实际应用中,我们通常需要通过配置文件或编程...