Spring框架发送Email
package com.eqifa.common.mail;
import com.eqifa.emar.common.util.Config;
import java.io.File;
import java.util.Hashtable;
import java.util.Enumeration;
import java.util.Properties;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
/**
* 邮件发送类,支持文本和HTML格式,多个附件
* @author zhoutao
* @version 1.0
*/
public class SendMail {
private Log log = LogFactory.getLog(getClass());
private JavaMailSenderImpl javaMailSender;
private MimeMessageHelper mimeMessageHelper;
//邮件服务器信息
private String host = Config.getString("mail.host");
private String protocol = Config.getString("mail.protocol");
private String port = Config.getString("mail.port");
//邮件服务器验证信息
private String userName = Config.getString("mail.userName");
private String password = Config.getString("mail.password");
private String ismailAuth = Config.getString("mail.auth");
public static void main(String args[]){
try {
SendMail sendMail = new SendMail();
sendMail.sendMailAsText("chenhui","chen.hui.12@163.com
",new String[]{"zhoutao"},new String[]{"zhoutao_bj@163.com"},null,"test","test");
}catch (Exception e) {
e.printStackTrace();
}
}
/**
* 使用默认参数发送邮件
*/
public SendMail() throws Exception {
this(true);
}
/**
* 使用发送邮件是否带附件
*/
private SendMail(boolean isMultipart) throws Exception {
javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(host);
javaMailSender.setProtocol(protocol);
javaMailSender.setPort(Integer.parseInt(port));
if (ismailAuth.equals("true")) {//如果需要服务器需要验证
javaMailSender.setUsername(userName);
javaMailSender.setPassword(password);
Properties p = new Properties();
p.put("mail.smtp.auth",ismailAuth);
javaMailSender.setJavaMailProperties(p);
}
mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(),isMultipart,"GB2312");
}
/**
* 发送普通文本邮件,不带附件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
*/
public void sendMailAsText(String
fromTitle, String mailFrom,String[] toTitles, String[] mailTos,
String[] mailCCs, String subject, String strText)
throws Exception {
sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, false, null);
}
/**
* 发送html格式邮件,不带附件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
*/
public void sendMailAsHtml(String
fromTitle, String mailFrom,String[] toTitles, String[] mailTos,
String[] mailCCs, String subject, String strText)
throws Exception{
sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, true, null);
}
/**
* 发送文本邮件,带附件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
* @param fileTable 附件表key为文件名value为File对象
*/
public void sendMailAsTextHasAtts(String
fromTitle, String mailFrom,String[] toTitles, String[] mailTos,
String[] mailCCs, String subject, String strText, Hashtable fileTable)
throws Exception {
sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, false, fileTable);
}
/**
* 发送html邮件,带附件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
* @param fileTable 附件表key为文件名value为File对象
*/
public void sendMailAsHtmlHasAtts(String
fromTitle, String mailFrom,String[] toTitles, String[] mailTos,
String[] mailCCs, String subject, String strText, Hashtable fileTable)
throws Exception {
sendMail(fromTitle, mailFrom, toTitles, mailTos, mailCCs, subject, strText, true, fileTable);
}
/**
* 发送邮件
* @param fromTitle 发件人昵称
* @param mailFrom 发件人地址
* @param toTitles 收件人昵称
* @param mailTos 收件人地址
* @param mailCCs 抄送地址
* @param subject 主题
* @param strText 邮件内容
* @param html 邮件格式
* @param fileTable 附件表key为文件名value为File对象
*/
private void sendMail(String fromTitle,
String mailFrom,String[] toTitles, String[] mailTos, String[] mailCCs,
String subject, String strText, boolean html, Hashtable fileTable)
throws Exception {
if (null != mailTos) {
if (null == toTitles) {
mimeMessageHelper.setTo(mailTos);
} else {
for (int i=0; i<mailTos.length; i++) {
if (i > toTitles.length || toTitles.length == 0) {
mimeMessageHelper.addTo(mailTos[i]);
} else {
mimeMessageHelper.addTo(mailTos[i],toTitles[i]);
}
}
}
}
if (null != mailFrom) {
if (null != fromTitle) {
mimeMessageHelper.setFrom(mailFrom,fromTitle);
} else {
mimeMessageHelper.setFrom(mailFrom);
}
}
if (null != mailCCs) {
mimeMessageHelper.setCc(mailCCs);
}
if (null != subject) {
mimeMessageHelper.setSubject(subject);
}
if (null != strText) {
if (html) {
mimeMessageHelper.setText(strText, true);
} else {
mimeMessageHelper.setText(strText, false);
}
}
if (null != fileTable) {
Enumeration e = fileTable.keys();
while (e.hasMoreElements()) {
String key = (String)e.nextElement();
File value = (File)fileTable.get(key);
mimeMessageHelper.addAttachment(key, value);
}
}
javaMailSender.send(mimeMessageHelper.getMimeMessage());
}
}
分享到:
相关推荐
基于spring mvc 框架,用freemarker创建邮件模板,包括详细邮件发送功能的spring配置和实现代码
Spring邮件发送系统:基于Java构建,包含67个文件,包括60个XML配置文件、3个Java类文件、2个.gitignore文件、1个Idea项目文件...该项目是一个Spring email的最简单入门案例,用于演示如何使用Spring框架发送电子邮件。
email|[email实现邮件发送](https://github.com/smltq/spring-boot-demo/blob/master/email) jGit|[java调用git命令、jgit使用等](https://github.com/smltq/spring-boot-demo/blob/master/jGit) webmagic|...
☆ Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。 ☆ Spring Web 模块:...
spring boot demo是一个用于深度学习并实战...强大的ORM框架)、upload( 本地文件上传和七牛云文件上传)、redis( 缓存)、ehcache( 缓存)、email( 发送各种类型邮件)、task( 基础定时任务)、quartz( 动态管理定时任务)等
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
plus(`快速操作Mybatis`)、BeetlSQL(`强大的ORM框架`)、upload(`本地文件上传和七牛云文件上传`)、redis(`缓存`)、ehcache(`缓存`)、email(`发送各种类型邮件`)、task(`基础定时任务`)、quartz(`动态管理定时任务`)...
BeetlSQL(强大的ORM框架),upload(本地文件上传和七牛云文件上传),redis(缓存),ehcache(缓存),email(发送各种类型邮件),任务(基础定时任务),Quartz(动态管理定时任务),xxl-job(分布式定时任务...
java开发oa办公系统源码 项目简介 一款企业信息化开发基础平台,可以用于快速构建企业后台管理系统,集成了OA(办公自动化)、...使用JavaEmail插件实现邮件发送,记得需要开启SSl验证 OA管理系统(待开发) CMS管理系统
框架:struts2+spring2.5+hibernate3.2+jsp+jquery1.3+mysql5.0 主要功能: 网站新闻管理 用户注册,登录 商品信息管理 系统设置 管理员密码修改 管理员登录退出 游客以及用户的投诉和建议功能 对网站...
由于J2EE的开源的框架中提供了MVC模式实现框架Struts、对象关系模型中的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的...
框架:struts2+spring2.5+hibernate3.2+jsp+jquery1.3+mysql5.0 主要功能: 网站新闻管理 用户注册,登录 商品信息管理 系统设置 管理员密码修改 管理员登录退出 游客以及用户的投诉和建议功能 对网站...
框架:struts2+spring2.5+hibernate3.2+jsp+jquery1.3+mysql5.0 主要功能: 网站新闻管理 用户注册,登录 商品信息管理 系统设置 管理员密码修改 管理员登录退出 游客以及用户的投诉和建议功能 对网站...
java开发oa办公系统源码 项目简介 一款企业信息化开发基础平台,可以用于快速构建企业后台管理系统,集成了OA(办公...使用JavaEmail插件实现邮件发送,记得需要开启SSl验证 OA管理系统(待开发) CMS管理系统(待开发) 系
java开发oa办公系统源码 项目简介 一款企业信息化开发基础平台,可以用于快速构建企业后台管理系统,集成了OA(办公...使用JavaEmail插件实现邮件发送,记得需要开启SSl验证 OA管理系统(待开发) CMS管理系统(待开发) 系
java开发oa办公系统源码 项目简介 一款企业信息化开发基础平台,可以用于快速构建企业后台管理系统,集成了OA(办公...使用JavaEmail插件实现邮件发送,记得需要开启SSl验证 OA管理系统(待开发) CMS管理系统(待开发) 系