spring boot实现发送邮件以及群发邮件
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实现发送邮件以及群发邮件相关推荐
- Spring Boot 之发送邮件
目录 Spring Boot 之发送邮件 简介 API 配置 实战 完整示例 引申和引用 Spring Boot 之发送邮件 简介 API 配置 实战 引入依赖 配置邮件属性 Java 代码 完整示例 ...
- Spring Boot 2发送邮件手把手图文教程
本文基于:Spring Boot 2.1.3,理论支持Spring Boot 2.x所有版本. 最近有童鞋问到笔者如何用Spring Boot发送邮件,故而整理下Spring Boot发送邮件的各种姿 ...
- 关于最近很火的给对象的公众号之java spring boot 定时发送邮件教学
最近给女朋友的接口测试号很流行,但是需要商家或者企业资质,但是我们可以通过邮箱实现相同的功能.大致效果如下(源代码底部): 话不多说,直接上教程,首先新建spring boot项目,这个过程不复杂我就 ...
- spring boot mail 发送邮件,及25端口更换到465端口
因为考虑到邮箱注册的业务,最近写了一个发送邮件的业务.使用阿里云邮箱发送.在这里搭建什么的就不展示了,直接上关键代码. pom.xml中添加: <dependency><groupI ...
- spring boot实现发送邮件功能
一.发送text邮件 1. 导入jar包 <dependency><groupId>org.springframework.boot</groupId><ar ...
- 强哥的分享--如何使用Spring Boot做一个邮件系统
http://springboot.fun/ actuator是单机. 集群环境下要使用Spring Boot Admin将各个单机的actuator集成越来 mvn clean package -D ...
- 如何使用 Spring Boot 开发邮件系统?
本文来自作者在 GitChat 上的精彩分享<使用 Spring Boot 开发邮件系统> 1. 前言 互联网发展到现在,邮件服务已经成为互联网企业中必备功能之一,应用场景非常广泛,比较常 ...
- Spring Boot开发MongoDB应用实践
本文继续上一篇定时任务中提到的邮件服务,简单讲解Spring Boot中如何使用MongoDB进行应用开发. 上文中提到的这个简易邮件系统大致设计思路如下: 1.发送邮件支持同步和异步发送两种 2.邮 ...
- java 邮件模板_Spring Boot 2发送邮件手把手图文教程
点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达! 本文基于:Spring Boot 2.1.3,理论支持Spring Boot 2.x所有版本. 最近有童鞋问到笔者如何用Spring Boo ...
最新文章
- 使用Python,OpenCV实现图像之间超快速的颜色转移
- QT界面操作1:如何跟踪鼠标位置?
- 安卓webview子线程网络请求,怎么获得结果?
- jquery效果 窗口弹出案例
- python识别人脸多种属性_OpenCV-Python(3)训练一个人脸识别器
- Unity URP高度雾效果Shader
- 广州学车科目三路考操作步骤要领
- Windows Server Failover Cluster 使用的协议和端口
- 【回环检测】如何理解loopClosing中的连续性检测
- sql-查询不同状态下的数据之和
- Debian Buster Nginx 布署 Brophp 项目(类 Thinkphp)
- java 修改final_Java反射有效修改final属性值
- SQL数据库快速入门基础
- Arduino温控风扇
- 地坤诀中所记录的第二元婴的炼制办法与其余的炼制方式不一样
- Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
- ucos 和uclinux的区别及各自的特点
- 微信上网卡WeSim悄然发布
- SDK全局热更新方案(全网唯一)
- form表单提交后提示成功信息