spring 配置文件
<?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="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="mail.aaa.com"/>
<property name="username" value="aa@aaa.com"/>
<property name="password" value="aaaaaa"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
</bean>
<bean id="freeMarker" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="WEB-INF/mailTemplate/"/><!--指定模板文件目录-->
<property name="freemarkerSettings"><!-- 设置FreeMarker环境属性-->
<props>
<prop key="template_update_delay">1800</prop><!--刷新模板的周期,单位为秒-->
<prop key="default_encoding">UTF-8</prop><!--模板的编码格式 -->
<prop key="locale">zh_CN</prop><!-- 本地化设置-->
</props>
</property>
</bean>
<bean id="springSendEmail" class="com.util.SpringSendEmail">
<property name="sender" ref="mailsender"></property>
<property name="freeMarkerConfigurer" ref="freeMarker"></property>
</bean>
</beans>
java代码
package com.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.apache.commons.lang.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.ui.freemarker.*;
import org.springframework.web.servlet.view.freemarker.*;
import com.ilip.freight.fundsManage.hibernate.FmsMorningReport;
import freemarker.template.Template;
public class SpringSendEmail {
private JavaMailSender sender;
private FreeMarkerConfigurer freeMarkerConfigurer=null;//FreeMarker的技术类
public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {
this.freeMarkerConfigurer = freeMarkerConfigurer;
}
public void setSender(JavaMailSender sender) {
this.sender = sender;
}
//通过模板构造邮件内容,参数username将替换模板文件中的${username}标签。
private String getMailText(FmsMorningReport report){
String htmlText="";
try {
//通过指定模板名获取FreeMarker模板实例
Template tpl=freeMarkerConfigurer.getConfiguration().getTemplate("registerUser.ftl");
//FreeMarker通过Map传递动态数据
Map map=new HashMap();
map.put("reportTypeName",report.getReportTypeName());
map.put("unusualTypeName",report.getUnusualTypeName());
map.put("complainParty",report.getComplainParty());
map.put("reportExplain",report.getReportExplain());
map.put("creatMan",report.getCreatMan());
map.put("creatDate",report.getCreatDate());
map.put("reportLevel", report.getReportLevel().equals("Y")?"是":"否");
//解析模板并替换动态数据,最终username将替换模板文件中的${username}标签。
htmlText=FreeMarkerTemplateUtils.processTemplateIntoString(tpl,map);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return htmlText;
}
//发送模板邮件
public void sendTemplateMail(List<String> toAddresss,FmsMorningReport report) throws MessagingException{
MimeMessage msg=sender.createMimeMessage();
MimeMessageHelper helper=new MimeMessageHelper(msg,false,"utf8");//由于是html邮件,不是mulitpart类型
helper.setFrom("a123@aaa.com");
helper.setSubject("异常报告-"+report.getReportTypeName()+"-"+report.getUnusualTypeName()+"-"+report.getCreatMan());
String htmlText=getMailText(report);//使用模板生成html邮件内容
helper.setText(htmlText, true);
try {
for(String toAddress:toAddresss){
helper.setTo(toAddress);
sender.send(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
在/WEB-INF/mailTemplate目录下新建registerUser.ftl模板文件
<html>
<body>
<table>
<tr><td style="font-size: 15px;">报 告 人:<font style="font-size: 13px;" color="red">${creatMan}</font></td></tr>
<tr><td style="font-size: 15px;">晨报类型:<font style="font-size: 13px;" color="red">${reportTypeName}</font></td></tr>
<tr><td style="font-size: 15px;">异常类型:<font style="font-size: 13px;" color="red">${unusualTypeName}</font></td></tr>
<tr><td style="font-size: 15px;">是否紧急:<font style="font-size: 13px;" color="red">${reportLevel}</font></td></tr>
<tr><td style="font-size: 15px;">报告时间:<font style="font-size: 13px;" color="red">${creatDate}</font></td></tr>
<tr><td style="font-size: 15px;">
<div style="float: left;">情况说明:</div><div style="width: 500px;color: #0055dd;font-size: 13px;">${reportExplain}</div>
</td></tr>
</table>
</body>
</html>
分享到:
相关推荐
spring整合freemarker实现发送邮件, html中内嵌图片,添加附件, 解决乱码问题. spring整合freemarker实现发送邮件, html中内嵌图片,添加附件, 解决乱码问题.
1.这是一个在根目录下的mail.properties文件中配好发送邮件地址和接收邮箱地址的实例,利用freeMarker模板作为展示,在测试类中提供配固定接收邮箱地址和手动输入接收邮箱地址两种方法进行发送试验,结果都能实现...
NULL 博文链接:https://kanpiaoxue.iteye.com/blog/2176342
项目主要是使用 Spring Boot 发送邮件,主要的技术点有: 1、Spring Boot +mybatis的整合 2、Spring Boot项目中jsp的使用 3、Spring Boot 发送邮件(文本格式的邮件、发送HTML格式的邮件、发送带附件 的邮件、...
基于spring mvc 框架,用freemarker创建邮件模板,包括详细邮件发送功能的spring配置和实现代码
Spring Mail + Spring Task完成异步发送激活链接,邮件发送,验证 Jquery BootStrap Ajax springBoot Guava Cache(java工具类集的基础库,注册key的绑定) Druid(监控目的的数据库连接池),配置文件里面...
Spring Mail + Spring Task完成异步发送激活链接,邮件发送,验证;Druid(监控目的的数据库连接池),配置文件里面加密数据库密码;Freemarker:基于Java的生成html的模板引擎,用来前后端交互等等。 项目功能目标 ...
该项目依赖于无模板模块it.ozimov:spring-boot-email-core ,该模块提供了核心功能(例如,发送电子邮件,调度和确定优先级,持久性)。 由于它是无模板的,因此它不提供用于通过模板引擎生成电子邮件正文的服务的...
UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的类, 6. spring-core-4.1.1.RELEASE.jar spring核心包 7. spring-expression-4.1.1.RELEASE.jar spring表达语言 SpEL以"#{...}...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
spring boot demo是一个用于深度学习并实战...强大的ORM框架)、upload( 本地文件上传和七牛云文件上传)、redis( 缓存)、ehcache( 缓存)、email( 发送各种类型邮件)、task( 基础定时任务)、quartz( 动态管理定时任务)等
7.注册如果发送邮件激活的方式出错(返回页面错误org.hibernate.LazyInitializationException: could not initialize proxy - no Session) 8.禁止用户后不允许登录、发帖、回帖等 9.后台会员搜索中文名搜索乱码 ...
该项目已成功集成 actuator(监控)、admin(可视化监控)、logback(日志)、aopLog(通过AOP记录web请求日志)、统一异常处理(json级别和页面级别)、freemarker(模板引擎)、thymeleaf(模板引擎)、Beetl(模板引擎)、Enjoy...
- chapter4-5-1:[实现邮件发送:简单邮件、附件邮件、嵌入资源的邮件、模板邮件](http://blog.didispace.com/springbootmailsender/) ### 消息服务 - chapter5-1-1:[JMS(未完成)] - chapter5-2-1:[Spring ...
- Spring Boot 业务应用,包括 定时任务、上传文件、发送邮件、Doc文档操作 等。 - springboot-ajax - Spring Boot AJAX 跨域,包括 JSONP、Node.js与SpringBoot集成使用反向代理 等。 - springboot-...
BeetlSQL(强大的ORM框架),upload(本地文件上传和七牛云文件上传),redis(缓存),ehcache(缓存),email(发送各种类型邮件),任务(基础定时任务),Quartz(动态管理定时任务),xxl-job(分布式定时任务...
7.4.1 使用JMS模板发送消息 7.4.2 消费消息 7.4.3 转换消息 7.5 小结 第三部分 Spring在Web层的应用 第8章 建立Web层 8.1 开始Spring MVC之旅 8.1.1 请求生命中的一天 8.1.2 配置...
14.4.3. 创建模板 14.4.4. 高级配置 14.4.4.1. velocity.properties 14.4.4.2. FreeMarker 14.4.5. 绑定支持和表单处理 14.4.5.1. 用于绑定的宏 14.4.5.2. 简单绑定 14.4.5.3. 表单输入生成宏 14.4.5.4. 重载HTML...
业务模块包括:权限管理,会员管理,角色管理,定时任务管理(调度管理),问答管理,文章管理,共享管理,短信接口管理和邮件系统发送(注册,找回密码,邮件订阅),跨域登录,消息推送,全文检索,前端国际化等等...