SpringBoot任务之详解邮件任务

01: 异步任务

02: 定时任务

一、SpringBoot--任务:邮件任务

1.1 添加依赖(增加邮件支持)

pom.xml

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

1.2 获取第三方授权码

1.2.1 登录QQ邮箱

1.2.2 点击设置

1.2.3 切换到账户

1.2.4 开启服务

1.2.5 验证密保

1.2.6 成功获取授权码

这是为了不直接暴露QQ密码设置的机制
ljoghujwhbkpbaff

1.2.7 保存更改(左下角)

1.3 配置邮件信息

application.properties

# qq邮箱
spring.mail.username=1585526224@qq.com
# 刚刚生成的授权码
spring.mail.password=ljoghujwhbkpbaff
# qq邮箱的host
spring.mail.host=smtp.qq.com
#开启加密验证(qq邮箱)
spring.mail.properties.mail.smtp.ssl.enable=true

1.4 简单邮件发送

直接调用SpringBootJavaMailSenderImpl类,使用SimpleMailMessage发送简单邮件

EmaildemoApplicationTests.java

package com.tian.emaildemo;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;

@SpringBootTest
class EmaildemoApplicationTests {

    @Autowired
    JavaMailSenderImpl mailSender;

    @Test
    void contextLoads() {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        // 邮件主题
        simpleMailMessage.setSubject("你好");
        // 邮件文本
        simpleMailMessage.setText("Hello world");
        // 接收方
        simpleMailMessage.setTo("1585526224@qq.com");
        // 发送方
        simpleMailMessage.setFrom("1585526224@qq.com");
        // 发送邮件
        mailSender.send(simpleMailMessage);
    }
}

运行结果:

1.5 复杂邮件发送

调用mailSender.createMimeMessage()并使用MimeMessageHelper配置邮件内容,发送即可,邮件内容后设置为true可以解析html格式的内容

EmaildemoApplicationTests.java

@Test
    void contextLoads() throws MessagingException {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        //复杂邮件
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        //组装
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);

        mimeMessageHelper.setSubject("复杂邮件");
//        发送文本: html文本
        mimeMessageHelper.setText("<p style='color: orange;'>\n" +
                "                    海客谈瀛洲,烟涛微茫信难求;<br>\n" +
                "\n" +
                "                    越人语天姥,云霞明灭或可睹。<br>\n" +
                "\n" +
                "                    天姥连天向天横,势拔五岳掩赤城。<br>\n" +
                "\n" +
                "                    天台四万八千丈,对此欲倒东南倾。<br>\n" +
                "\n" +
                "                    (四万 一作:一万)我欲因之梦吴越,一夜飞度镜湖月。<br>\n" +
                "\n" +
                "                    (度 通:渡)湖月照我影,送我至剡溪。<br>\n" +
                "\n" +
                "                    谢公宿处今尚在,渌水荡漾清猿啼。<br>\n" +
                "                    <br>\n" +
                "                    脚著谢公屐,身登青云梯。<br>\n" +
                "\n" +
                "                    半壁见海日,空中闻天鸡。<br>\n" +
                "\n" +
                "                    千岩万转路不定,迷花倚石忽已暝。<br>\n" +
                "\n" +
                "                    熊咆龙吟殷岩泉,栗深林兮惊层巅。<br>\n" +
                "\n" +
                "                    云青青兮欲雨,水澹澹兮生烟。<br>\n" +
                "\n" +
                "                    列缺霹雳,丘峦崩摧。<br>\n" +
                "                    <br>\n" +
                "                    洞天石扉,訇然中开。<br>\n" +
                "\n" +
                "                    青冥浩荡不见底,日月照耀金银台。<br>\n" +
                "\n" +
                "                    霓为衣兮风为马,云之君兮纷纷而来下。<br>\n" +
                "\n" +
                "                    虎鼓瑟兮鸾回车,仙之人兮列如麻。<br>\n" +
                "\n" +
                "                    忽魂悸以魄动,恍惊起而长嗟。<br>\n" +
                "                    <br>\n" +
                "                    惟觉时之枕席,失向来之烟霞。<br>\n" +
                "\n" +
                "                    世间行乐亦如此,古来万事东流水。<br>\n" +
                "\n" +
                "                    别君去兮何时还?<br>\n" +
                "\n" +
                "                    且放白鹿青崖间。<br>\n" +
                "\n" +
                "                    须行即骑访名山。<br>\n" +
                "\n" +
                "                    安能摧眉折腰事权贵,使我不得开心颜!<br>\n" +
                "                </p>", true);//true,开启html解析
//         发送图片
        mimeMessageHelper.addAttachment("重庆理工大学夜景.jpg", new File("D:\\图片\\schoolNight.jpg"));

        mimeMessageHelper.setTo("1585526224@qq.com");
        mimeMessageHelper.setFrom("1585526224@qq.com");
        mailSender.send(mimeMessage);
    }

运行结果:

我不知道为什么:我写的CSS样式在电脑上面不可预见,但是在我的手机QQ邮箱确是可以看见的。欢迎知道的大神告诉我

1.6 可以把上面复杂发送邮件封装成一个方法

 public void SendMail(Boolean html, String title, String text, File file, String sendTo, String sendFrom) throws MessagingException {
        //复杂邮件
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        //组装
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);

        mimeMessageHelper.setSubject(title);
        mimeMessageHelper.setText(text, html);//true,开启html解析
        mimeMessageHelper.addAttachment("1.jpg", file);

        mimeMessageHelper.setTo(sendTo);
        mimeMessageHelper.setFrom(sendFrom);
        mailSender.send(mimeMessage);
    }

到此这篇关于SpringBoot任务之详解邮件任务的文章就介绍到这了,更多相关SpringBoot邮件任务内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • springboot动态定时任务的实现方法示例

    1.maven引入quartz包 <!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> </dep

  • SpringBoot任务之定时任务相关知识总结

    01: 异步任务 03: 邮件任务 一.SpringBoot--任务:定时任务 项目开发中经常需要执行一些定时任务,比如需要在每天凌晨的时候, 分析一次前一天的日志信息,Spring为我们提供了异步执行任务调度的方式,提供了 两个接口和两个注解,并且用corn表达式去定时. TaskScheduler //任务调度程序 TaskExecutor //任务执行者 @EnableScheduling //开启定时功能的注解,放在主入口 @Scheduled //什么时候执行 cron表达式 1.1

  • Springboot任务之异步任务的使用详解

    一.SpringBoot--异步任务 1.1 什么是同步和异步 同步是阻塞模式,异步是非阻塞模式. 同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会-直等待下去,知道收到返回信息才继续执行下去 异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态.当有消息返回式系统会通知进程进行处理,这样可以提高执行的效率. 1.2 Java模拟一个异步请求(线程休眠) AsyncService.java package com.tian.async

  • springboot定时任务详解

    在我们开发项目过程中,经常需要定时任务来帮助我们来做一些内容, Spring Boot 默认已经帮我们实行了,只需要添加相应的注解就可以实现 一.基于注解(静态) 1.pom 包配置 pom 包里面只需要引入 Spring Boot Starter 包即可 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactI

  • SpringBoot实现发送邮件任务

    本文实例为大家分享了SpringBoot实现发送邮件任务的具体代码,供大家参考,具体内容如下 1.pom中引入spring-boot-starter-mail <dependencies> <!--邮件--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> &

  • Springboot实现Java邮件任务过程解析

    1.maven引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 2.application.properties配置发送邮箱 //用户邮箱 spring.mail.username=753029781@qq.com //QQ邮箱开通第三

  • SpringBoot任务之详解邮件任务

    01: 异步任务 02: 定时任务 一.SpringBoot--任务:邮件任务 1.1 添加依赖(增加邮件支持) pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 1.2 获取第三方授权码 1.2.1 登录QQ邮箱 1.2.2 点

  • SpringBoot 统一异常处理详解

    代码结构 配置pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/

  • Java下SpringBoot创建定时任务详解

    序言 使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式: 一.基于注解(@Scheduled) 二.基于接口(SchedulingConfigurer) 前者相信大家都很熟悉,但是实际使用中我们往往想从数据库中读取指定时间来动态执行定时任务,这时候基于接口的定时任务就派上用场了. 三.基于注解设定多线程定时任务 一.静态:基于注解 基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影响. 1.创建定时器 使用SpringBoo

  • springboot集成es详解

    1.导入 maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-dataelasticsearch</artifactId> <dependency> 注意 保持版本一致 我用的是7.6.2版本的 <properties> <java.version>1.8</jav

  • Java SpringBoot 集成 Redis详解

    目录 1.概述 Redis是什么? Redis能该干什么? 特性 2.测试Redis 3.自定义redisTemplate 1.概述 Redis是什么? Redis(Remote Dictionary Server ),即远程字典服务. 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加

  • Java SpringBoot自定义starter详解

    目录 一.什么是SpringBoot starter机制 二.为什么要自定义starter ? 三.什么时候需要创建自定义starter? 四.自定义starter的开发流程(案例:为短信发送功能创建一个starter) 1.细节:命名规范 2.必须引入的依赖 3.编写相关属性类(XxxProperties):例如 SmsProperties.java 4.编写Starter项目的业务功能 5.编写自动配置类AutoConfig 6.编写spring.factories文件加载自动配置类 7.打

  • springboot与vue详解实现短信发送流程

    目录 一.前期工作 1.开启邮箱服务 2.导入依赖 3.配置application.yaml文件 二.实现流程 1.导入数据库 2.后端实现 编写实体类 编写工具类ResultVo 编写dao层接口 配置dao层接口的数据库操作 编写service层接口 编写service层的实现方法 实现controller层 Test代码 前端页面的实现 运行截图+sql图 总结 一.前期工作 1.开启邮箱服务 开启邮箱的POP3/SMTP服务(这里以qq邮箱为例,网易等都是一样的) 2.导入依赖 在spr

  • SpringBoot入门教程详解

    目录 一.SpringBoot简介 二.SpringBoot入门案例 1.创建项目 2.编写 Controller 类 3.启动项目 4.使用 Postman 测试 三.SpringBoot VS Spring 四.在官网中构建工程 六.SpringBoot 是如何实现简化开发的 1.启动依赖 2.引导类 七.切换 Web 一.SpringBoot简介 SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 我们在学习 S

  • SpringBoot快速入门详解

    Spring Boot是什么? Spring Boot并不是什么新的框架,它是对Spring的缺点进行了改善和优化,Spring Boot默认了很多的框架使用方式,像maven整合了所以jar包同一个道理.及SpringBoot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式而已. 为什么使用Spring Boot? Spring Boot官方是这么说的:Spring Boot它是基于Spring开发项目的起点,Spring Boot的设计主要是让你快速地跑起来Spri

  • 基于SpringBoot Mock单元测试详解

    目录 1.Mock的概念: 3. 常用的 Mockito 方法 Junit中的基本注解: @Test:使用该注解标注的public void方法会表示为一个测试方法: @BeforeClass:表示在类中的任意public static void方法执行之前执行: @AfterClass:表示在类中的任意public static void方法之后执行: @Before:表示在任意使用@Test注解标注的public void方法执行之前执行: @After:表示在任意使用@Test注解标注的p

随机推荐