SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)

news2024/10/6 6:46:32

SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)

目录

  • SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)
  • 1.概述
  • 2.最佳实践
    • 2.1创建项目引入依赖(mail)
    • 2.2 修改yml配置文件
    • 2.3 启动类添加@EnableScheduling注解
    • 2.4 执行的任务类(发送基本内容)

我们使用java程序发送邮件,属于使用第三方客户端发送邮件
使用第三方客户端发送邮件也需要先通过认证(登录):
官方客户端认证: 用户名 密码
第三方客户端的认证:用户名 授权码
授权码需要通过发送短信开通指定功能时获取

1.概述

SpringBoot实现邮件功能是非常的方便快捷的,因为SpringBoot默认有starter实现了Mail。
发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。
最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring推出了JavaMailSender更加简化了邮件发送的过程,在之后springboot对此进行了封装就有了现在的spring-boot-starter-mail。

2.最佳实践

先去qq邮箱设置smtp开启,并获得授权码
邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得授权码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1创建项目引入依赖(mail)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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

2.2 修改yml配置文件

spring:
  mail:
    host: smtp.qq.com  #配置服务器qq:smtp.qq.com,网易163:smtp.163.com
    password: cvaflkvougrvcijd  #授权码,邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得权码
    username: 3541434135@qq.com
    default-encoding: UTF-8

2.3 启动类添加@EnableScheduling注解

在这里插入图片描述

package com.bjopwernode;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@EnableScheduling
@SpringBootApplication
public class SpringbootTimedtaskMixMailsendingApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootTimedtaskMixMailsendingApplication.class, args);
    }

}

2.4 执行的任务类(发送基本内容)

在基础包下新建一个task目录,里面新建一个类MyTask.java

package com.bjopwernode.task;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class MyTask {

    @Autowired
    private JavaMailSender javaMailSender;


    /**
     * 发送基本内容
     */
   @Scheduled(cron = "0/3 * * * * ?")
    public  void testSendSimpleMailMessage(){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();

        //发件人邮箱
        simpleMailMessage.setFrom("3541434135@qq.com");
        //收件人邮箱
        simpleMailMessage.setTo("601081254@qq.com");
        //邮件主题
        simpleMailMessage.setSubject("这是一个测试邮件");
        //邮件内容
        simpleMailMessage.setText("测试内容");

        javaMailSender.send(simpleMailMessage);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式(三)--适配器模式(Adapter Pattern)

将一个接口转换成客户希望的另一个接口&#xff0c;适配器模式使接口不兼容的那些类可以一起工作.比如我们日常开发中使用到的slf4j就使用了适配器模式&#xff0c;slf4j提供了一系列打日志的api,底层调用的是log4j或者logback来打日志&#xff0c;而作为调用者&#xff0c;不需…

C++基础(二)—— 类和对象(类的封装)、对象的构造和析构(浅拷贝、深拷贝、explicit、动态分配内存)

【上一篇】C基础&#xff08;一&#xff09;—— C概述、C对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)1. 类和对象的基本概念1.1 C和C中struct区别c语言struct只有变量c语言struct 既有变量&#xff0c;也有函数1.2 类的封装我们编写…

【建议收藏】超详细的Canal入门,看这篇就够了!!!

概述 canal是阿里巴巴旗下的一款开源项目&#xff0c;纯Java开发。基于数据库增量日志解析&#xff0c;提供增量数据订阅&消费&#xff0c;目前主要支持了MySQL&#xff08;也支持mariaDB&#xff09;。 背景 早期&#xff0c;阿里巴巴B2B公司因为存在杭州和美国双机房部…

Vue3 核心模块源码解析(中)

【Vue3 核心模块源码解析(上)】讲到了 Vue2 与 Vue3的一些区别&#xff0c;Vue3 新特性的使用&#xff0c;以及略微带了一点源码。那么这篇文章就要从Vue3 模块源码解析 与 Vue3 执行逻辑解析这两个方面去给大家剖析 Vue3 的深层次&#xff0c;一起学习起来吧&#xff01; 这里…

6.深入理解SecurityConfigurer

深入理解SecurityConfigurer 一、SecurityConfigurer SecurityConfigurer 在 Spring Security 中是一个非常重要的角色。在前面的内容中曾经多次提到过&#xff0c; Spring Security 过滤器链中的每一个过滤器&#xff0c;都是通过 xxxConfigurer 来进行配置的&#xff0c;而这…

文件跳过回收站删除了常见原因|找回方法

演示机型&#xff1a;技嘉 H310M HD22.0系统版本&#xff1a;Windows 10 专业版软件版本&#xff1a;云骑士数据恢复软件3.21.0.92你有没有遇到文件跳过回收站而直接删除的情况&#xff1f;如果有的话&#xff0c;你是知道是什么原因吗&#xff1f;文件跳过回收站删除了怎么办&…

【JavaScript速成之路】JavaScript数组

&#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f525;系列专栏&#xff1a;【JavaScript速成之路】 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; 文章目录前言1&#xff0c;初识数组1.1&#xff0c;数组1.2&#xff0c;创建数组1.3&…

SCI期刊收不收费也有门道,你知道吗?

什么是OA期刊? OA期刊是在互联网上在线出版的学术刊物&#xff0c;英文全称是OpenAccess Journal&#xff0c;中文译为“开放存取期刊”。OA期刊不同于传统的学术期刊如《自然》、《科学》等&#xff0c;采取的是向读者收费的运营模式&#xff0c;读者只有付费订阅&#xff0…

【MySQL】表的数据处理

哈喽&#xff0c;大家好&#xff01;我是保护小周ღ&#xff0c;本期为大家带来的是 MySQL 数据表中数据的基本处理的操作&#xff0c;数据表的增删改查&#xff0c;更多相关知识敬请期待&#xff1a;保护小周ღ *★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★*一、 添加数据&a…

极简RSS订阅器Miniflux

什么是 Miniflux &#xff1f; Miniflux 是一个极简主义的 RSS 阅读器。它简单、快速、轻便且非常易于使用。Miniflux 是静态编译的单个二进制文件&#xff0c;没有使用任何复杂的框架&#xff0c;也没有外部依赖&#xff0c;简单、快速、轻巧且超级容易安装。支持 Atom、RSS 1…

Docker(五)--Docker网络--源生网络、自定义网络

文章目录一、源生网络1.docker 的网桥---bridge2.host网络模型3.none 网络模型二、自定义网络模型1.bridge驱动2.指定网关和子网3.自定义网络其中内嵌dns解析4.不同网段的容器通信一、源生网络 我们先把server7上的harbor仓库down掉&#xff0c;然后查看网络&#xff0c;可以看…

微服务导学

一、微服务导学1.1 对比单体架构与分布式架构单体架构将业务的所有功能集中再一个项目中开发&#xff0c;打成一个包部署。分布式架构缺点&#xff1a; 模块多导致部署麻烦&#xff1b;架构复杂&#xff0c;难度大1.2 微服务经过良好架构设计的分布式架构方案&#xff0c;微服务…

【Springboot系列】解析Springboot事件机制,从入门到大师

系列文章&#xff1a;Spring Boot学习大纲&#xff0c;可以留言自己想了解的技术点 继续写Springboot系列&#xff0c;争取早点结束。 1、是什么 Spring的事件&#xff08;Application Event&#xff09;为Bean与Bean之间的消息通信提供了支持 事件机制中有三种角色&#x…

RTOS中事件集的实现原理以及实用应用

事件集的原理 RTOS中事件集的实现原理是通过位掩码来实现的。事件集是一种用于在任务之间传递信号的机制。在RTOS中&#xff0c;事件集通常是一个32位的二进制位向量。每个位都代表一个特定的事件&#xff0c;例如信号、标志、定时器等。 当一个任务等待一个或多个事件时&…

Hbase备份与恢复工具Snapshot的基本概念与工作原理

数据库都有相对完善的备份与恢复功能。备份与恢复功能是数据库在数据意外丢失、损坏下的最后一根救命稻草。数据库定期备份、定期演练恢复是当下很多重要业务都在慢慢接受的最佳实践&#xff0c;也是数据库管理者推荐的一种管理规范。HBase数据库最核心的备份与恢复工具——Sna…

Spark+Vue+Springboot 协同过滤额音乐推荐大数据深度学习项目

一、项目背景 随着互联网的发展,大数据的到来,传统的音乐行业受到了很大的冲击,原有的音乐数字化给人们生活带来了极大的便利。随着数字音乐的兴起,各大音乐平台层出不穷,人们在音乐平台上收听音乐的时,常常因为歌曲信息繁杂,而不能找到自己想听的音乐。为了解决这个问题,音乐…

Elasticsearch:使用 Logstash 构建从 Kafka 到 Elasticsearch 的管道 - Nodejs

在我之前的文章 “Elastic&#xff1a;使用 Kafka 部署 Elastic Stack”&#xff0c;我构建了从 Beats > Kafka > Logstash > Elasticsearch 的管道。在今天的文章中&#xff0c;我将描述从 Nodejs > Kafka > Logstash > Elasticsearch 这样的一个数据流。在…

modbus转profinet网关连接ABB变频器在博图程序案例

在博图里PLC无需编程利用兴达易控modbus转Profinet网关,将ABB变频器接入到西门子网络中.用到设备为西门子1200PLC&#xff0c;ABB变频器及兴达易控Modbus转profinet网关一个;兴达易控Modbus转profinet协议转换器&#xff08;XD-MDPN100&#xff09;一台 打开博图添加1200PLC&am…

121.(leaflet篇)leaflet结合echarts4迁徙图

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

【数据挖掘与商务智能决策】第二章 特征工程与数据预处理

数据预处理 非数值类型数据处理 Get_dummies哑变量处理 1. 简单示例&#xff1a;“男”和“女”的数值转换 import pandas as pd df pd.DataFrame({客户编号: [1, 2, 3], 性别: [男, 女, 男]}) df客户编号性别01男12女23男 df pd.get_dummies(df, columns[性别]) df客户…