SpringBoot任务之详解邮件任务

作者:Z && Y 时间:2021-08-12 12:49:16 

01: 异步任务

02: 定时任务

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

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

SpringBoot任务之详解邮件任务

pom.xml


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

1.2 获取第三方授权码

1.2.1 登录QQ邮箱

SpringBoot任务之详解邮件任务

1.2.2 点击设置

SpringBoot任务之详解邮件任务

1.2.3 切换到账户

SpringBoot任务之详解邮件任务

1.2.4 开启服务

SpringBoot任务之详解邮件任务

1.2.5 验证密保

SpringBoot任务之详解邮件任务

1.2.6 成功获取授权码

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

SpringBoot任务之详解邮件任务

1.2.7 保存更改(左下角)

SpringBoot任务之详解邮件任务

1.3 配置邮件信息

SpringBoot任务之详解邮件任务

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发送简单邮件

SpringBoot任务之详解邮件任务

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);
   }
}

运行结果:

SpringBoot任务之详解邮件任务

1.5 复杂邮件发送

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

SpringBoot任务之详解邮件任务

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);
   }

运行结果:

SpringBoot任务之详解邮件任务

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

SpringBoot任务之详解邮件任务

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);
   }

来源:https://blog.csdn.net/I_r_o_n_M_a_n/article/details/117636353

标签:SpringBoot,邮件,任务
0
投稿

猜你喜欢

  • Android编程实现向桌面添加快捷方式的方法

    2023-01-24 02:10:33
  • Java ArrayList扩容问题实例详解

    2022-05-08 08:57:57
  • Java+opencv3.2.0实现人脸检测功能

    2022-11-27 10:36:42
  • android图片文件的路径地址与Uri的相互转换方法

    2023-09-09 20:11:45
  • C#分屏控件用法实例

    2022-02-04 20:01:57
  • Java设计模式初识之备忘录模式详解

    2023-08-29 23:27:09
  • Java 转型(向上或向下转型)详解及简单实例

    2021-10-17 14:29:27
  • 解决springboot配置logback-spring.xml不起作用问题

    2022-09-10 11:21:24
  • C#移除字符串中的不可见Unicode字符 案例代码

    2023-04-28 19:06:06
  • 浅谈Java中Lambda表达式的相关操作

    2023-09-17 12:00:58
  • 微信开发准备第二步 springmvc mybatis项目结构搭建

    2021-07-16 22:18:37
  • springboot连接sqllite遇到的坑及解决

    2023-04-27 04:37:38
  • C#打包应用程序,与.NETFramework介绍

    2022-03-29 15:29:20
  • JAVA实现的简单万年历代码

    2021-10-02 21:35:34
  • c# 实现文件上传下载功能的实例代码

    2021-12-10 15:00:30
  • java线程池:获取运行线程数并控制线程启动速度的方法

    2022-06-30 23:22:57
  • Java实现批量下载选中文件功能

    2021-09-09 17:57:45
  • Maven 多profile及指定编译问题的解决

    2022-04-22 23:43:24
  • Java8 stream 中利用 groupingBy 进行多字段分组求和案例

    2023-03-22 00:54:43
  • 你所不知道的Spring的@Autowired实现细节分析

    2023-11-25 05:40:47
  • asp之家 软件编程 m.aspxhome.com