# spring-boot-mail
**Repository Path**: sxiazb/spring-boot-mail
## Basic Information
- **Project Name**: spring-boot-mail
- **Description**: 邮件发送服务,文本、附件、模版多种实现,队列,线程定时任务功能
- **Primary Language**: Java
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: http://blog.52itstyle.com
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 937
- **Created**: 2018-09-14
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# spring-boot-mail
邮件发送服务,文本,附件,模板,队列,多线程,定时任务实现多种功能!!!
[SpringBoot开发案例之整合mail发送服务](https://blog.52itstyle.com/archives/1264/)
[SpringBoot开发案例之整合mail队列篇](https://blog.52itstyle.com/archives/1385/)
## 开发环境
JDK1.7、Maven、Eclipse、SpringBoot1.5.9、spring-boot-starter-mail、spring-boot-starter-thymeleaf,spring-boot-starter-freemarker
## 演示图



## 启动说明
- 项目中RPC框架使用的是当当维护的DubboX,现在阿里已经处于维护状态中,请自行更新
- 配置Dubbo需要安装注册中心zookeeper: http://www.52itstyle.com/thread-19791-1-1.html
- 如果不想使用Dubbo和安装zookeeper,又想启动看下效果,请注释掉 Application 类中的@ImportResource({"classpath:spring-context-dubbo.xml"}), 同时由于接口扫描注解使用的是Dubbo的 com.alibaba.dubbo.config.annotation.Service; 请自行替换成spring的 org.springframework.stereotype.Service;
- Sql文件位于src/main/resource/sql下,自行导入即可、里面有一条测试数据
- API: http://localhost:8080/springboot_mail/swagger-ui.html、可以自行测试发送邮件,前提是要修改application-dev.properties中的邮箱配置为自己可用的
## 流程图
### 平台架构

### 进程内邮件队列

## 欢迎关注
.jpg")
## 友情提示
由于工作原因,项目正在完善中,随时更新日志,有疑问请留言或者加群
- JAVA爱好者④:
- JAVA爱好者①:
(满)
- JAVA爱好者②:
(满)
- JAVA爱好者③:
(满)
## 项目结构
```
├─src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─itstyle
│ │ │ └─mail
│ │ │ │ Application.java
│ │ │ │
│ │ │ ├─demo
│ │ │ │ CountDownLatchDemo.java
│ │ │ │ Ticket.java
│ │ │ │ TicketRun.java
│ │ │ │
│ │ │ ├─model
│ │ │ │ Email.java
│ │ │ │
│ │ │ ├─queue
│ │ │ │ ConsumeMailQueue.java
│ │ │ │ MailQueue.java
│ │ │ │
│ │ │ ├─redis
│ │ │ │ Receiver.java
│ │ │ │ RedisConfig.java
│ │ │ │ RedisListener.java
│ │ │ │
│ │ │ ├─service
│ │ │ │ │ IMailService.java
│ │ │ │ │
│ │ │ │ └─impl
│ │ │ │ MailServiceImpl.java
│ │ │ │
│ │ │ ├─task
│ │ │ │ SendMail.java
│ │ │ │
│ │ │ └─util
│ │ │ CommonUtil.java
│ │ │ Constants.java
│ │ │ MailUtil.java
│ │ │
│ │ ├─resources
│ │ │ │ application-dev.properties
│ │ │ │ application-prod.properties
│ │ │ │ application-test.properties
│ │ │ │ application.yml
│ │ │ │ spring-context-dubbo.xml
│ │ │ │ spring-context-task.xml
│ │ │ │
│ │ │ └─static
│ │ │ ├─file
│ │ │ │ 关注科帮网获取更多源码.zip
│ │ │ │
│ │ │ ├─image
│ │ │ │ springcloud.png
│ │ │ │
│ │ │ └─template
│ │ │ welcome.flt
│ │ │ welcome.html
│ │ │
│ │ └─webapp
│ │ │ index.jsp
│ │ │
│ │ └─WEB-INF
│ │ web.xml
│ │
│ └─test
│ └─java
│ └─com
│ └─itstyle
│ └─mail
│ └─test
│ SpringbootMailApplication.java
```
- 普通文本发送
- 富文本发送(图片、附件)
- freeMarker模版发送邮件
- thymeleaf模版发送邮件
# 评测生成模版时间对比(1000次循环)
- Thymeleaf用时:2686ms
- Freemarker用时:498ms
对比测试,建议使用Freemarker模版
# 20170721
- 加入DubboX对外提供发送服务
- 加入定时任务统计失败邮件定时重新发送
- 多环境配置文件实现

作者: 小柒2012
欢迎关注: https://blog.52itstyle.com
## 测试
- 修改 application-dev.properties 中自己的邮件配置 同时配置dubbo.registry.address地址
- 执行 com.itstyle.mail.test.SpringbootMailApplication main 方法