Java实现发送邮件(定时自动发送邮件)

article/2025/10/4 23:23:33

系列文章目录

Redis缓存穿透、击穿、雪崩问题及解决方法
Spring Cache的使用–快速上手篇
分页查询–Java项目实战篇
全局异常处理–Java实战项目篇
该系列文章持续更新,更多的文章请点击我的主页查看哦!


文章目录

目录

系列文章目录

文章目录

前言

一、开通服务

二、配置文件编写

 三、编写工具类

四、实现发送邮件

 五、效果图

六、定时发送邮件

6.1 @Scheduled()注解

6.2 @EnableScheduling注解

总结


前言

   在我们做项目时,有些需求需要通知其他人。比如在手机号获取验证码登录时,会发送短信给该用户去接收验证码从而进行身份确认进行安全登录。但有些时候是需要进行群发消息通知用户的,这个过程肯定不是认为的去发送,所以我们就用java来实现通知用户的邮件发送功能。

   至于为什么要发送QQ邮件通知用户,而不是使用短信等方式?想必对这方面有些了解的就知道短信服务是要开通服务的,就是需要交钱的(这个钱是根据具体发送短信的条数算的),这里对于收钱的我们就不演示了。都这么说了,大家肯定猜到了QQ邮件是免费的!没错啊,你没有听错,真的是免费的。很适合在校大学生在写项目时运用,毕竟白嫖才是最香的嘛!

所以这篇文章就来告诉大家怎么去使用java实现邮件发送和定时发送的功能。看完这篇文章后大家就可以使用java代码给自己的好朋友发送邮件,在好朋友面前展现自己的食力啦!


一、开通服务

在这里第一步需要进入QQ邮箱登录自己的邮箱账号去免费开通服务。没错,这个开通是免费的,大家可以放心开通。

第一步:在登录自己的QQ邮箱后,点击设置------》点击账户。具体操作如下图所示:

 第二步:下滑找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务点击开通,由于我已经开通过了,这里显示已开通的样子。如下图所示:

 注意:这里会给一个秘钥(就是开通后显示的一串英文),记得自己保存起来,在编写java代码时需要用到。

二、配置文件编写

这里我用properties编写,配置的是发送邮件人的信息。

#QQ邮箱邮件发送服务配置(固定写法)
spring.mail.host=smtp.qq.com
spring.mail.port=587# 配置个人QQ账户和密码(密码是加密后的授权码)
spring.mail.username=这里是开通服务的邮箱号
spring.mail.password=这里是刚才开通服务的秘钥

 三、编写工具类

准备工作做完了,现在就需要我们编写工具类来实现发送了。当然在发送邮件之前别忘了导入spring提供的邮箱服务依赖。

<!-- mail邮件服务启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

导入依赖后就可以编写工具类了,在utils包下编写邮箱工具类。

1.首先要注入JavaMailSenderImpl发送邮件类,需要调用该类的send方法用来发送邮件。

2.发送的信息要封装到SimpleMailMessage()对象中。包括发送者、接受者、内容标题、内容。这四个部分。由于发送是需要秘钥的,所以刚才开通服务的邮件就可以作为发送者。接受者、内容标题、内容都可以作为参数传递过来。

3.这里的mailfrom就是使用@value注解赋值配置文件刚才配置的邮箱号。就是发送的邮箱号。

代码如下:

@Component
public class MailUtils {@Autowiredprivate JavaMailSenderImpl mailSender;@Value("${spring.mail.username}")private String mailfrom;// 发送简单邮件public void sendSimpleEmail(String mailto, String title, String content) {//  定制邮件发送内容SimpleMailMessage message = new SimpleMailMessage();message.setFrom(mailfrom);message.setTo(mailto);message.setSubject(title);message.setText(content);// 发送邮件mailSender.send(message);}
}

四、实现发送邮件

 工具类已经写好了,我们就可以调用该方法传递参数发送邮件了。

@Autowiredprivate MailUtils mailUtils;// mailto 发送给谁?private String mailto="";@GetMapping("/email")public void sendEmail(){//  定制邮件内容StringBuffer content = new StringBuffer();content.append("心态还需努力呀~").append("\n");//三个参数、1.接收者  2.邮件标题  3.发送的内容mailUtils.sendSimpleEmail(接收者,邮件标题,发送的内容);}

 五、效果图

这里为了展示效果,我就自己给自己发送一个邮件:

 当访问Controller接口时,这里就接收到我自己给自己发送过来的邮件。

六、定时发送邮件

6.1 @Scheduled()注解

定时发送需要在发送的方法上加上@Scheduled()注解

@Scheduled()参数可以是这样的格式:

里面有6个参数:

从左到右用空格隔开分别是:秒 分 时 日 月 周 年(可省略)

第一个位置:Seconds 秒:区间 0-59 秒,代表一分钟内的秒数。

第二个位置:Minutes 分:区间 0-59 分,代表一小时内的分钟数。

第三个位置:Hours 时:区间 0-23 时,代表一天中的小时数。

第四个位置:Day of month 日:区间 1-31 (?根据每月有多少天来),代表一月中的多少号。

第五个位置:Month 月:区间 1-12 ,代表一年中的月份。

第六个位置:Day of week 周:区间 1-7或者英文星期的缩写,代表星期几。

//表示每月二号的十点定时执行下面的方法。所以就可实现定时发送功能。
@Scheduled(cron = "0 0 10 2 * ?")

6.2 @EnableScheduling注解

然后在启动类上加上@EnableScheduling注解

@EnableScheduling  // 开启定时任务注解功能支持


总结

到这里发送邮件的功能的代码实现和操作步骤就都演示完了,赶快去给你的好朋友展示自己的食力去吧。该功能整体没有什么特别难以理解的点。是实现自己的练习项目,大作业不错的一个功能可选。也可作为毕设的一部分。大家赶快练起来吧。

 最后也是写文章快一年了,我的朋友数量也是突破了1万,在这过程中有和我一起走过来的小伙伴,也有在半路就退出的,没有在继续写文章。可能也是由于生活比较的忙碌。大家都是在以不同的方式学习,生活。在这里感谢大家对我的陪伴与支持,以后还会继续分享知识点和大家一起讨论,交流。

 看到这里了,如果这篇文章对你有帮助的话可以给我点个免费的赞在离开哦!


http://chatgpt.dhexx.cn/article/GveSFfLx.shtml

相关文章

使用Excel和OutLook实现自动发送邮件

参考我的资源: https://download.csdn.net/download/paul50060049/11805973 问题的产生 我们在平时工作中可能会遇到要批量发送邮件的工作&#xff0c;例如财务部根据每个人的工资情况发放工资条到个人的邮箱&#xff0c;因为邮件因人而异&#xff0c;所以需要完成大量而细致…

Python实现自动发送邮件

最近比较闲的慌&#xff0c;在自己学习Python爬虫&#xff0c;学到了用Python发送邮件&#xff0c;觉得这个可能以后比较实用。以下项目用QQ邮箱为例。 需要用到的模块&#xff1a; smtplib&#xff0c;email 提醒&#xff01;QQ 邮箱一般默认关闭SMTP服务&#xff0c;我们得…

python自动发送邮件实现

目录 1 前言2 准备工作2.1 电子邮件的基础知识。2.2 python邮件库2.3 邮箱设置 3 python实现邮件自动发送3.1 SMTP()和send()方法介绍3.2 python实现实例 参考信息 1 前言 python功能强大&#xff0c;可以实现我们日常办公的很多任务。诸如批量处理word,excel,pdf等等文件&…

Python自动化小技巧14——自动批量发送邮件(带各种附件)

案例背景 我的博客下面评论都是各种要数据的......一个一个发其实很浪费时间的&#xff0c;每次输入评论者的邮箱&#xff0c;然后打开数据所在的文件夹&#xff0c;上传&#xff0c;填写标题正文&#xff0c;发送....... 一模一样的流程&#xff0c;所以这种重复性的劳动肯定…

【Python 】20行代码,实现自动发送邮件

快下班了&#xff0c;今天给大家分享一下&#xff0c;平常我都是怎么发送电子邮件&#xff0c;这个方法能够帮助大家提高工作效率、&#xff0c;摆脱繁重的重复性工作。一般我都会借用Python来实现自动化邮件发送&#xff0c;相信你用过这个方法之后就会爱上它。&#xff08;资…

Python 自动发送邮件实战案例,人人都可以学会

自动发送邮件能应用于许多场景&#xff0c;比如我想要知道股票策略中的股票池是否有实时的更新&#xff0c;这时候如果再拉一遍数据&#xff0c;跑一遍脚本&#xff0c;实在是太浪费时间了。为什么不把这一套流程放到服务器上&#xff0c;然后到点自动运行并发送邮件呢&#xf…

干货 | 解放双手,用Python实现自动发送邮件

使用Python实现自动化邮件发送&#xff0c;可以让你摆脱繁琐的重复性业务&#xff0c;节省非常多的时间。 Python有两个内置库&#xff1a;smtplib和email&#xff0c;能够实现邮件功能&#xff0c;smtplib库负责发送邮件&#xff0c;email库负责构造邮件格式和内容。 邮件发…

小区物业管理系统设计与开发论文

目录 第1章 需求规格说明书... 1 1.1 目的... 1 1.2 系统概述... 1 1.3 系统总体功能描述... 1 1.4 运行环境... 2 1.5 系统角色分工... 2 1.5.1xxx模块功能描述.. 4 1.5.2 xxx模块功能描述.. 5 1.5.3 xxx模块功能描述... 5 1.5.4 xxx模块功能描述... 6 第2章 系统设计说明书..…

基于安卓 android studio的考试APP开发设计 前台和后台管理系统

一 项目概述 考试APP系统分为前台APP端和后台管理系统&#xff0c;前台APP可以注册&#xff0c;登录&#xff0c;试卷列表&#xff0c;开始测试&#xff0c;个人中心&#xff0c;试卷打分&#xff0c;试题解析&#xff0c;退出系统&#xff0c;后台管理系统 主要有 老师注册 登…

产品开发的组织架构和开发管理

摘要&#xff1a;产品开发的组织架构和产品开发过程管理是一个软件企业开发管理的两个侧面&#xff0c;开发组织架构指软件项目的立项和项目开发有效的人员调配和组织&#xff0c;开发过程管理指在项目确定后&#xff0c;软件开发过程的管理。本文根据作者在建立软件企业管理体…

图书馆管理系统的开发

课程设计的目的与要求 课程设计目的软件工程课程设计是学习软件工程课程后所进行的实践环节,目的是培养学生用工程化的思想和标准文档化的思想进行软件开发。本次课程设计通过开发一个小型实用的软件系统,亲身体验软件生命周期中的各个环节,以加深对软件工程课程的深入理解、…

微信小程序 一键授权 给第三方平台代开发管理(一,创建第三方平台)

不是重点&#xff0c;可以忽略&#xff1a; 本人 七月的胜利。代表七月份我出生啦&#xff0c;嘻嘻 博客就是平常记录一些常用到的开发常用到的技术&#xff0c;方法等&#xff0c;看见好东西了就自己整理一下防止以后自己遇到了再找不到。 如果有幸帮到你&#xff0c;欢迎点赞…

使用go语言开发运维管理平台

前言 经过对go语言的一段时间学习&#xff0c;打算实践一下&#xff0c;正好公司缺个运维平台&#xff0c;于是我就对Zeus二次开发&#xff0c;完成了一个初步的效果&#xff0c;在这里分享给大家&#xff0c;大家有什么建议可以提出来哈&#xff0c;一起进步 采用技术 前端&am…

微信小程序云开发实践--搭建一个管理小程序

概述 : 开发者可以使用云开发开发微信小程序、小游戏&#xff0c;无需搭建服务器&#xff0c;即可使用云端能力。 云开发为开发者提供完整的云端支持&#xff0c;弱化后端和运维概念&#xff0c;无需搭建服务器&#xff0c;使用平台提供的 API 进行核心业务开发&#xff0c;即…

基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;或者没有积分想获取项目&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 一、开发背景二、 需求分析三、开发环境四、运行效果五、开发流程工程目…

用Django半天时间开发一个员工管理系统实例教程分享

熟悉python的朋友都知道&#xff0c;django简直是web开发领域的一个大杀器。 请求、模板、ORM、admin 都自带&#xff0c;程序员可以很轻松的开发出一个网站或者管理系统。 今天小编给大家分享一个超简单的员工管理系统 源码地址&#xff1a; https://github.com/newpanjin…

微信小程序云开发-内容管理系统(CMS)小案例

一、前言 最近有朋友问到如何在CMS上实现审核小程序端提交的数据&#xff0c;例如发布的内容审核&#xff0c;订单审核等等。因而出一篇小案例。 二、原理说明 这个由腾讯开源的这个内容管理系统&#xff0c;实际上就是对于云开发数据库的可视化操作&#xff08;又或者说其实…

使用微信提供的云开发实现后端 微信小程序云开发的内容管理CMS

以前开发一款小程序或者应用啥的&#xff0c;首先就是申请域名租服务器&#xff0c;这是必不可少的步骤。 现在小程序云开发出来后&#xff0c;又再出现内容管理的这个功能&#xff0c;对于开发一款简单的小程序来说&#xff0c;真的是太简单的了。 现成的后台直接配置&#…

新能力 | 云开发CMS内容管理系统,5分钟搞定小程序管理后台

小程序云开发的云调用能力&#xff0c;让用户可以免鉴权快速调用微信的开放能力&#xff0c;极大节约了开发成本。现在&#xff0c;大家期待已久的云开发 CMS 内容管理系统&#xff0c;终于上线啦&#xff01;顺便提示&#xff0c;接下来还可以二次开发哦&#xff01; 云开发 …