SpringBoot任务之详解邮件任务

 更新时间:2021年06月07日 16:30:46   作者:Z && Y  
今天给大家整理的文章是SpringBoot邮件任务的相关知识点,文中有非常详细的介绍及代码示例,对正在学习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邮件任务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • idea安装jerbel及文件上传下载的实现示例

    idea安装jerbel及文件上传下载的实现示例

    JRebel是一个Java开发工具,它是一款用于实时代码重载的插件,本文主要介绍了idea安装jerbel及文件上传下载的实现示例,具有一定的参考价值,感兴趣的可以了解下
    2023-09-09
  • 深入浅出的讲解Java关键字final的作用

    深入浅出的讲解Java关键字final的作用

    final是Java中非常常见的一个关键字,可以说每天都在使用它,虽然常见,但却也不见得都那么显而易见,今天就来研究一下final,以加深对它的理解和更合理的运用,需要的朋友可以参考下
    2023-06-06
  • 总结Java调用Python程序方法

    总结Java调用Python程序方法

    这篇文章主要介绍了总结Java调用Python程序方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java基于链表实现栈的方法详解

    Java基于链表实现栈的方法详解

    这篇文章主要介绍了Java基于链表实现栈的方法,结合实例形式详细分析了Java基于链表实现栈的原理、操作步骤与相关注意事项,需要的朋友可以参考下
    2020-03-03
  • 如何用java给文件加密的简单实现

    如何用java给文件加密的简单实现

    文件加密,简单来说就是把文件读取出来,把读取出来的字节码数组进行遍历,把每一个码值和一个秘钥(随便一个数)进行异或运算,将运算后的结果全部写入到文件里,这篇文章主要介绍了如何用java给文件加密的简单实现,需要的朋友可以参考下
    2023-12-12
  • Spring Boot配置接口WebMvcConfigurer的实现

    Spring Boot配置接口WebMvcConfigurer的实现

    这篇文章主要介绍了SpringBoot配置接口WebMvcConfigurer的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Maven依赖冲突的几种有效解决方法总结

    Maven依赖冲突的几种有效解决方法总结

    在项目开发中使用Maven管理Jar包时,常常会遇到Jar包依赖冲突,所以本文就给大家总结了几种解决Maven依赖冲突的有效方法,需要的朋友可以参考下
    2023-07-07
  • Java简单工厂模式定义与用法实例分析

    Java简单工厂模式定义与用法实例分析

    这篇文章主要介绍了Java简单工厂模式定义与用法,结合实例形式分析了java简单工厂模式的相关定义与使用技巧,并给出了原理类图进行总结,需要的朋友可以参考下
    2019-07-07
  • Java实现黄金分割法的示例代码

    Java实现黄金分割法的示例代码

    黄金分割法是一种区间收缩方法。所谓区间收缩方法,指的是将含有最优解的区间逐步缩小,直至区间长度为零的方法。本文将用Java实现这一算法,需要的可以参考一下
    2022-03-03
  • Java代码性能测试实战之ContiPerf安装使用

    Java代码性能测试实战之ContiPerf安装使用

    这篇文章主要为大家介绍了Java代码性能测试实战之ContiPerf安装使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论