此篇主要讲的是使用spring配置实现邮件发送,与之前的底层实现简便了不少,只需要几个配置就可以了,那么请往下看:

先写个接口
/**
* @Title: IMailserdService.java
* @Package org.service
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com
* @date 2017-5-30 上午10:36:34
* @version V1.0
*/
package org.service;
/**
*
* 项目名称:spring_Schop8
* 类名称:IMailserdService
* 类描述:
* 创建人:Mu Xiongxiong
* 修改备注:
* @version
*
*/
public interface IMailsendService {
/**
*
* @Title: sendMessage
* @Description: 该方法的主要作用:发送邮件
* @param 设定文件
* @return 返回类型:void
* @throws
*/
void sendMessage();
}
然后在写个实现该接口的类:
/**
* @Title: AttMailsendServiceImpl.java
* @Package org.service.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com
* @date 2017-5-30 上午11:12:02
* @version V1.0
*/
package org.service.impl;
import java.io.IOException;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.service.IMailsendService;
import org.springframework.core.io.ClassPathResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
/**
*
* 项目名称:spring_Schop8
* 类名称:AttMailsendServiceImpl
* 类描述: 使用spring实现对邮件的发送
* 创建人:Mu Xiongxiong
* 修改备注:
* @version
*
*/
public class AttMailsendServiceImpl implements IMailsendService {
private JavaMailSender javaMailSender;
/**(非 Javadoc)
* <p>Title: sendMessage</p>
* <p>Description(描述):发送带附件的邮件 </p>
* @see org.service.IMailsendService#sendMessage()
*/
@Override
public void sendMessage() {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper;
try {
helper = new MimeMessageHelper(message,true,"utf-8");
helper.setFrom("jerry@mail.com");
helper.setTo("tina@mail.com");
helper.setSubject("带附件的邮件");
//普通格式的
//helper.setText("发送一个附件内容!<a href='http://www.baidu.com'>百度搜索</a>");
//html格式的
helper.setText("发送一个附件内容!<a href='http://www.baidu.com'>百度搜索</a>",true);
//添加附件1
ClassPathResource file1 = new ClassPathResource("/org/doc/doc.txt");
helper.addAttachment(file1.getFilename(),file1.getFile());
//添加附件2
ClassPathResource file2 = new ClassPathResource("/org/doc/text.txt");
helper.addAttachment(file2.getFilename(), file2.getFile());
javaMailSender.send(message);
} catch (MessagingException e) {
// TODO 异常执行块!
e.printStackTrace();
} catch (IOException e) {
// TODO 异常执行块!
e.printStackTrace();
}
}
public JavaMailSender getJavaMailSender() {
return javaMailSender;
}
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
}
上面的这个类还可以发送带附件的邮件,里面含两个附件(文件),我弄上来吧:
还有一种是使用模板发送带html格式的邮件:
我直接上实现类:
/**
* @Title: CreateMatterServiceImpl.java
* @Package org.service.impl
* @Description: TODO该方法的主要作用:
* @author A18ccms A18ccms_gmail_com
* @date 2017-5-30 上午11:46:53
* @version V1.0
*/
package org.service.impl;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.service.IMailsendService;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
*
* 项目名称:spring_Schop8
* 类名称:CreateMatterServiceImpl
* 类描述:
* 创建人:Mu Xiongxiong
* 修改备注:
* @version
*
*/
public class CreateMatterServiceImpl implements IMailsendService {
private JavaMailSender javaMailSender;
private Configuration configuration;
/**(非 Javadoc)
* <p>Title: sendMessage</p>
* <p>Description(描述):使用后模板发送邮件 </p>
* @see org.service.IMailsendService#sendMessage()
*/
@Override
public void sendMessage() {
MimeMessage message = javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message,true,"UTF-8");
helper.setFrom("jerry@mail.com");
helper.setTo("tina@mail.com");
helper.setSubject("使用模板进行发送邮件");
helper.setText(getText(),true);
//从模板里面读取
javaMailSender.send(message);
} catch (MessagingException e) {
// TODO 异常执行块!
e.printStackTrace();
}
}
//读取模板
private String getText(){
String txt = "";
try {
Template template = configuration.getTemplate("mail.ftl");
//通过map传递动态数据
Map map = new HashMap();
map.put("username","雄雄");
//解析模板文件
txt = FreeMarkerTemplateUtils.processTemplateIntoString(template,map);
} catch (IOException e) {
// TODO 异常执行块!
e.printStackTrace();
} catch (TemplateException e) {
// TODO 异常执行块!
e.printStackTrace();
}
return txt;
}
public JavaMailSender getJavaMailSender() {
return javaMailSender;
}
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public Configuration getConfiguration() {
return configuration;
}
public void setConfiguration(Configuration configuration) {
this.configuration = configuration;
}
}
模板文件如下:
然后在看看spring里面是怎么配置的呢?
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<bean id="mailsender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="mail.com"></property>
<property name="port" value="25"></property>
<property name="username" value="jerry"></property>
<property name="password" value="123" ></property>
<property name="protocol" value="smtp"></property>
<property name="defaultEncoding" value="utf-8"></property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
</bean>
<!-- 配置FreeMarker-->
<bean id="freeMarkerConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
<!-- 指定模板文件路径 -->
<property name="templateLoaderPath" value="org/doc/"></property>
<!-- 设置freekMarker环境变量 -->
<property name="freemarkerSettings">
<props>
<prop key="default_encoding">UTF-8</prop>
</props>
</property>
</bean>
<!-- 简单邮件 -->
<bean id="simpleMailsendService" class="org.service.impl.SimpleMailsendServiceImpl">
<property name="sender" ref="mailsender"></property>
</bean>
<!-- html和带附件的邮件 -->
<bean id="AttMailsendService" class="org.service.impl.AttMailsendServiceImpl">
<property name="javaMailSender" ref="mailsender"></property>
</bean>
<!-- 使用模板发送邮件-->
<bean id="createMatterService" class="org.service.impl.CreateMatterServiceImpl">
<property name="configuration" ref="freeMarkerConfiguration"></property>
<property name="javaMailSender" ref="mailsender"></property>
</bean>
</beans>
当前时间已经是00点多了,又累又困,我就不详细解释这个applicationContexct.xml里面的内容了,里面有注释,看不懂的可以评论,我第一时间改进!
接着我们测试一下:
TestMail:
package org.test;
import org.junit.Test;
import org.service.IMailsendService;
import org.service.impl.Mail;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestMail {
@Test
public void testMail() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//简单邮件
//IMailsendService mailsendService=(IMailsendService) ctx.getBean("simpleMailsendService");
//复杂邮件
//IMailsendService mailsendService=(IMailsendService) ctx.getBean("AttMailsendService");
//使用模板的文件
IMailsendService mailsendService=(IMailsendService) ctx.getBean("createMatterService");
mailsendService.sendMessage();
System.out.println("发送成功!");
}
}
注明一下:简单邮件是直接发的文本内容,复杂邮件是包含html格式和附件的,模板发送是html格式的另一种方式,我们来看看运行的结果:
先看看带附件,还有html格式的邮件:
接下来是简单邮件:
接下来的一种是使用模板发送邮件,用户名是动态上去的:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# spring
# 发送邮件
# mail
# spring实现邮件发送
# Spring学习笔记3之消息队列(rabbitmq)发送邮件功能
# Java的Spring框架中实现发送邮件功能的核心代码示例
# springMVC发送邮件的简单实现
# Spring Boot实战之发送邮件示例代码
# Spring Boot中利用JavaMailSender发送邮件的方法示例(附源码)
# spring mail借助qq邮箱服务器发送邮件
# Spring+quartz实现定时发送邮件功能实例
# Spring Boot实现邮件发送功能
# Spring实现邮件发送功能
# spring+maven实现邮件发送
# 上午
# 百度搜索
# 几个
# 我就
# 还可以
# 是怎么
# 来看看
# 只需要
# 第一时间
# 来吧
# 看不懂
# 大家多多
# 就可以
# 讲的是
# 往下看
# 邮件发送
# 测试一下
# 先写
# 直接发
相关文章:
建站之星价格显示格式升级,你的预算足够吗?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何通过虚拟主机快速完成网站搭建?
宁波免费建站如何选择可靠模板与平台?
制作营销网站公司,淘特是干什么用的?
如何选择靠谱的建站公司加盟品牌?
如何在自有机房高效搭建专业网站?
如何快速完成中国万网建站详细流程?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
建站之星安装失败:服务器环境不兼容?
,南京靠谱的征婚网站?
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
建站OpenVZ教程与优化策略:配置指南与性能提升
如何高效搭建专业期货交易平台网站?
linux top下的 minerd 木马清除方法
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
C++中引用和指针有什么区别?(代码说明)
如何用花生壳三步快速搭建专属网站?
python的本地网站制作,如何创建本地站点?
小程序网站制作需要准备什么资料,如何制作小程序?
实现虚拟支付需哪些建站技术支撑?
建站之星如何实现PC+手机+微信网站五合一建站?
南宁网站建设制作定制,南宁网站建设可以定制吗?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
已有域名和空间如何搭建网站?
建站ABC备案流程中有哪些关键注意事项?
独立制作一个网站多少钱,建立网站需要花多少钱?
如何在搬瓦工VPS快速搭建网站?
建站主机无法访问?如何排查域名与服务器问题
如何在香港服务器上快速搭建免备案网站?
宝塔Windows建站如何避免显示默认IIS页面?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
制作网站的软件免费下载,免费制作app哪个平台好?
网站制作免费,什么网站能看正片电影?
如何快速建站并高效导出源代码?
网站制作公司排行榜,抖音怎样做个人官方网站
建站之星官网登录失败?如何快速解决?
如何在万网自助建站平台快速创建网站?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
,巨量百应是干嘛的?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
网站制作价目表怎么做,珍爱网婚介费用多少?
建站之星免费版是否永久可用?
Python多线程使用规范_线程安全解析【教程】
如何在IIS中新建站点并配置端口与IP地址?
如何用PHP工具快速搭建高效网站?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
焦点电影公司作品,电影焦点结局是什么?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
*请认真填写需求信息,我们会在24小时内与您取得联系。