spring boot实现发送邮件以及群发邮件

2021年上班第一天,老板就让我写一个功能,要求将项目中的设备在线情况,发送邮件到老板和甲方老板的邮箱里,然后我花了正好一天的时间,将功能写了出来,如下

要想通过软件自动发送邮件,就需要一些前置步骤,以qq邮箱示例

1、在qq邮箱开通POP3/SMTP服务,很快可以弄好
点击设置

点击账户

开启SMTP服务,如图,我是已经点击开启的状态


点击生成授权码,需要发送短信,按他要求就可以,也很快,将授权码保存下来,待会要用

接下来就是要开始写代码了

可以先用一个demo测试,生成一个Maven项目先
除了springboot的一些基本依赖以外,只需要再加一个mail的依赖就可以,如下

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>

然后我们可以写一个定时任务,或者写一个接口,我这里是写了一个定时任务,都一样

接下来就分两种情况了,一种是单独发送,另一种是群发(其实我感觉直接群发就可以,又简单,又可以兼容群发和单独发送两种情况)

如果是单独发送
先在application.properties中进行如下配置

spring.mail.host=smtp.qq.com
spring.mail.port=587
#上一步中开通SMTP服务的邮箱账号
spring.mail.username=xxxxxxxxxx@qq.com
#这里是刚刚生成的授权码,不是qq邮箱密码!!!
spring.mail.password=xxxxxxxxxx
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.ssl.enable=true

然后再写一个接口吧

/*** @Author YuanChangLiang* @Date 2021/2/20 14:52*/
@RestController
public class TestController {@Autowiredprivate JavaMailSender javaMailSender;@RequestMapping("/send")public String send(){SimpleMailMessage simpleMailMessage = new SimpleMailMessage();simpleMailMessage.setFrom("3020651945@qq.com");simpleMailMessage.setTo("2500819750@qq.com");simpleMailMessage.setSubject("今日天气");simpleMailMessage.setText("当前时间"+new Date()+",目前大雨");javaMailSender.send(simpleMailMessage);return "已执行";}}

解释一下代码:From是发送人,To是接收人,Subject是邮箱标题,Text是邮箱内容

调用接口,结果如下

如果是群发

我喜欢这个,不用配置文件,而且同时兼容群发和单个发送,如下

依赖同上,写一个定时任务,如下

#每天10点55自动执行
@Scheduled(cron = "0 55 10 * * ?")public void checkDeviceStatus2() {//直接new出来,不使用自动注入JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();javaMailSender.setHost("smtp.qq.com");//这里是授权码,授权码,自己的授权码!!!!javaMailSender.setPassword("xxxxxxxxxxxxxxx");javaMailSender.setPort(587);javaMailSender.setProtocol("smtp");//开通SMTP的邮箱javaMailSender.setUsername("xxxxxxxxx@qq.com");SimpleMailMessage simpleMailMessage = new SimpleMailMessage();// 每日定时执行// ============================================这些是业务代码,这里删除了,不给看O(∩_∩)O哈哈~// ============================================log.info("邮件开始发送");//接收人String[] users = {"xxxxxxxx@qq.com","xxxxxxxxx@qq.com"};simpleMailMessage.setFrom("xxxxxxxxxxx@qq.com");simpleMailMessage.setTo(users);simpleMailMessage.setSubject("设备在线情况报告");StringBuilder stringBuilder = new StringBuilder();// ============================================这些是业务代码,这里删除了,不给看O(∩_∩)O哈哈~// ============================================//获取当前时间LocalDateTime currentTime = LocalDateTime.now();DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");String format = currentTime.format(dateTimeFormatter);simpleMailMessage.setText("当前时间:"+ format + "\n\n" + "项目名称:在线设备数量/已有经纬度设备数量" + "\n" + stringBuilder.toString());javaMailSender.send(simpleMailMessage);log.info("邮件已经发送");}

结果如下

以上代码加上业务代码,我已经提交到了线上,是最终代码了

以上

-----我是“道祖且长”,一个在互联网苟且偷生的Java程序员

spring boot实现发送邮件以及群发邮件相关推荐

  1. Spring Boot 之发送邮件

    目录 Spring Boot 之发送邮件 简介 API 配置 实战 完整示例 引申和引用 Spring Boot 之发送邮件 简介 API 配置 实战 引入依赖 配置邮件属性 Java 代码 完整示例 ...

  2. Spring Boot 2发送邮件手把手图文教程

    本文基于:Spring Boot 2.1.3,理论支持Spring Boot 2.x所有版本. 最近有童鞋问到笔者如何用Spring Boot发送邮件,故而整理下Spring Boot发送邮件的各种姿 ...

  3. 关于最近很火的给对象的公众号之java spring boot 定时发送邮件教学

    最近给女朋友的接口测试号很流行,但是需要商家或者企业资质,但是我们可以通过邮箱实现相同的功能.大致效果如下(源代码底部): 话不多说,直接上教程,首先新建spring boot项目,这个过程不复杂我就 ...

  4. spring boot mail 发送邮件,及25端口更换到465端口

    因为考虑到邮箱注册的业务,最近写了一个发送邮件的业务.使用阿里云邮箱发送.在这里搭建什么的就不展示了,直接上关键代码. pom.xml中添加: <dependency><groupI ...

  5. spring boot实现发送邮件功能

    一.发送text邮件 1. 导入jar包 <dependency><groupId>org.springframework.boot</groupId><ar ...

  6. 强哥的分享--如何使用Spring Boot做一个邮件系统

    http://springboot.fun/ actuator是单机. 集群环境下要使用Spring Boot Admin将各个单机的actuator集成越来 mvn clean package -D ...

  7. 如何使用 Spring Boot 开发邮件系统?

    本文来自作者在 GitChat 上的精彩分享<使用 Spring Boot 开发邮件系统> 1. 前言 互联网发展到现在,邮件服务已经成为互联网企业中必备功能之一,应用场景非常广泛,比较常 ...

  8. Spring Boot开发MongoDB应用实践

    本文继续上一篇定时任务中提到的邮件服务,简单讲解Spring Boot中如何使用MongoDB进行应用开发. 上文中提到的这个简易邮件系统大致设计思路如下: 1.发送邮件支持同步和异步发送两种 2.邮 ...

  9. java 邮件模板_Spring Boot 2发送邮件手把手图文教程

    点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达! 本文基于:Spring Boot 2.1.3,理论支持Spring Boot 2.x所有版本. 最近有童鞋问到笔者如何用Spring Boo ...

最新文章

  1. 使用Python,OpenCV实现图像之间超快速的颜色转移
  2. QT界面操作1:如何跟踪鼠标位置?
  3. 安卓webview子线程网络请求,怎么获得结果?
  4. jquery效果 窗口弹出案例
  5. python识别人脸多种属性_OpenCV-Python(3)训练一个人脸识别器
  6. Unity URP高度雾效果Shader
  7. 广州学车科目三路考操作步骤要领
  8. Windows Server Failover Cluster 使用的协议和端口
  9. 【回环检测】如何理解loopClosing中的连续性检测
  10. sql-查询不同状态下的数据之和
  11. Debian Buster Nginx 布署 Brophp 项目(类 Thinkphp)
  12. java 修改final_Java反射有效修改final属性值
  13. SQL数据库快速入门基础
  14. Arduino温控风扇
  15. 地坤诀中所记录的第二元婴的炼制办法与其余的炼制方式不一样
  16. Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
  17. ucos 和uclinux的区别及各自的特点
  18. 微信上网卡WeSim悄然发布
  19. SDK全局热更新方案(全网唯一)
  20. form表单提交后提示成功信息

热门文章

  1. 似乎总有一些事情是难以忘怀的
  2. XPT2046的使用
  3. aix nfs aix_保护AIX网络服务
  4. 1016: 守望者的逃离
  5. css 选择器和属性
  6. ant design vue treeDefaultExpandAll 更换数据后没有自动展开
  7. C# 操作word之纵向合并单元格及其跨页问题的解决
  8. 求一个计算机高配置表,组装电脑的高配置清单
  9. 选电子工程被劝退,真的没前景了?
  10. Matlab如何去掉单个坐标轴单位标注