SpringBoot实现发送邮件任务

 更新时间:2020年02月12日 11:32:29   作者:波~~~  
这篇文章主要为大家详细介绍了SpringBoot实现发送邮件任务,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了SpringBoot实现发送邮件任务的具体代码,供大家参考,具体内容如下

1.pom中引入spring-boot-starter-mail

<dependencies>
    <!--邮件-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    <!--web-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
</dependencies>

2.假如 张三@qq.com 给 李四@163.com 发送邮件,张三首先要登录自己的邮箱,所以先要配置发送者的账号密码,服务器地址。

注意:第三方登录邮箱的时候,使用的不是邮箱的原本密码,使用的是临时授权码。

以QQ邮箱为例子,打开邮箱!

点击账户

往下拉,全部开启,生成授权码!

全部开启。点击生成授权码!

3.配置application.properties

##发件人邮箱
spring.mail.username=119848xxxx@qq.com
##生成的授权码
spring.mail.password=lojwzgpnrpzmifgg
##QQ的SMIP地址
spring.mail.host=smtp.qq.com
##配置安全连接
spring.mail.properties.mail.smtp.ssl.enable=true

4.在测试类中测试

package com.zyb.task;
 
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.test.context.junit4.SpringRunner;
 
import javax.mail.internet.MimeMessage;
import java.io.File;
 
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootTaskApplicationTests {
  //注入邮件发送器
  @Autowired
  JavaMailSenderImpl javaMailSender;
 
  /**
   * 简单邮件测试
   */
  @Test
  public void contextLoads1() {
    SimpleMailMessage message = new SimpleMailMessage();
    message.setText("今晚7点钟开会");
    message.setSubject("通知-开会");
    //发送者邮箱
    message.setFrom("119848xxxx@qq.com");
    //发送到哪个邮箱
    message.setTo("zyb_xxx@126.com");
    javaMailSender.send(message);
  }
 
  /**
   * 复杂邮件测试
   */
  @Test
  public void contextLoads2() throws Exception{
    //1.创建一个复杂的消息邮件
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    //第二个参数 是否需要上传附件
    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
    //邮件设置
    //这里可以使用html标签样式
    helper.setText("<b style='color:red'>今晚7点钟开会</b>",true);
    helper.setSubject("通知-开会");
    //发送者邮箱
    helper.setFrom("119848xxxx@qq.com");
    //发送到哪个邮箱
    helper.setTo("zyb_xxx@126.com");
    //上传附件 附件名,路径
    helper.addAttachment("1.jpg",new File("C:\\Users\\Administrator\\Desktop\\img\\iphone壁纸\\1.jpg"));
    javaMailSender.send(mimeMessage);
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • JDK SPI机制以及自定义SPI类加载问题

    JDK SPI机制以及自定义SPI类加载问题

    这篇文章主要介绍了JDK SPI机制以及自定义SPI类加载问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • tk-mybatis整合springBoot使用两个数据源的方法

    tk-mybatis整合springBoot使用两个数据源的方法

    单纯的使用mybaits进行多数据配置网上资料很多,但是关于tk-mybaits多数据源配置没有相关材料,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-12-12
  • springboot创建线程池的两种方式小结

    springboot创建线程池的两种方式小结

    这篇文章主要介绍了springboot创建线程池的两种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java新手学习之IO流的简单使用

    Java新手学习之IO流的简单使用

    IO主要用于设备之间的数据传输,Java将操作数据流的功能封装到了IO包中,这篇文章主要给大家介绍了关于Java新手学习之IO流简单使用的相关资料,需要的朋友可以参考下
    2021-10-10
  • 教你用JAVA写文本编辑器(一)

    教你用JAVA写文本编辑器(一)

    对于学习java编程的小伙伴们,常常需要编写一个类似文本编辑器的东西,下面这篇文章主要给大家介绍了关于如何用JAVA写文本编辑器的相关资料,需要的朋友可以参考下
    2021-11-11
  • 浅谈Java文件执行顺序、main程序入口的理解

    浅谈Java文件执行顺序、main程序入口的理解

    这篇文章主要介绍了Java文件执行顺序、main程序入口的理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 解析SpringBoot自定义参数校验注解

    解析SpringBoot自定义参数校验注解

    这篇文章主要介绍了SpringBoot自定义参数校验注解,引入依赖,spring validation是在hibernate-validator上做了一层封装,文中提到了定义参数校验注解与处理器的示例代码,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • Spring Bean的定义及三种创建方式

    Spring Bean的定义及三种创建方式

    本文主要介绍了Spring容器获取Bean的9种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • java反射获取一个object属性值代码解析

    java反射获取一个object属性值代码解析

    这篇文章主要介绍了java反射获取一个object属性值代码解析,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java动态数组添加数据的方法与应用示例

    Java动态数组添加数据的方法与应用示例

    这篇文章主要介绍了Java动态数组添加数据的方法,结合实例形式详细分析了Java动态数组的创建、添加、查找、打印等相关操作技巧,需要的朋友可以参考下
    2019-11-11

最新评论