开源中国 2018 年度最后一场技术盛会邀你来约~错过就要等明年啦!点此立即预约

小柒2012 / spring-boot-mailJavaApache-2.0

Watch 227 Star 653 Fork 243
加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
邮件发送服务,文本、附件、模版多种实现,队列,线程定时任务功能 展开 收起

http://blog.52itstyle.com

取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md

spring-boot-mail

邮件发送服务,文本,附件,模板,队列,多线程,定时任务实现多种功能!!!

欢迎关注

一个有温度的微信公众号,期待与你共同进步,分享美文,分享各种Java学习资源

输入图片说明

友情提示

由于工作原因,项目正在完善中,随时更新日志,有疑问请留言或者加群

  • JAVA爱好者:JAVA爱好者

开发环境

JDK1.7、Maven、Eclipse、SpringBoot1.5.9、spring-boot-starter-mail、spring-boot-starter-thymeleaf、spring-boot-starter-freemarker、Dubbo、Zookeeper、Redis

演示图

输入图片说明

输入图片说明

输入图片说明

启动说明

  • 项目中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中的邮箱配置为自己可用的

  • 2018-10-25 原spring-context-dubbo.xml 配置 替换为 dubbo-spring-boot-starter 2.0.0

  • 执行 com.itstyle.mail.test.SpringbootMailApplication main 方法

流程图

平台架构

输入图片说明

进程内邮件队列

邮件队列

项目结构

├─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对外提供发送服务
  • 加入定时任务统计失败邮件定时重新发送
  • 多环境配置文件实现

20181024

  • 原spring-context-dubbo.xml 配置 替换为 dubbo-spring-boot-starter 2.0.0

推荐阅读

SpringBoot开发案例之整合mail发送服务

SpringBoot开发案例之整合mail队列篇

作者: 小柒2012

欢迎关注: https://blog.52itstyle.com

项目点评 ( 39 )

你可以在登录后,发表评论

搜索帮助