欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring boot 邮箱功能

程序员文章站 2022-05-07 18:45:00
...

一、邮箱功能

1.1 添加依赖

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

1.2 qq邮箱开始权限

参考:Java邮件发送详解

进入QQ邮箱–>邮箱设置–>账户,下滑找到POP3/IMAP/SMTP/Exchange/CardDav/CalDav服务,开启POP3/SMTP服务,如图所示:
Spring boot 邮箱功能

1.3 配置文件

spring.mail.host=smtp.qq.com
aaa@qq.com
spring.mail.password=wugfhhzgepdtbgfd 
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.ssl.enable=true

1.4 简单邮件功能的使用

@RestController
public class JavaMailController {
    @Autowired
    JavaMailSender javaMailSender;
    @RequestMapping("/sendMail")
    public String sendMail () throws MailException {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom("aaa@qq.com");
        simpleMailMessage.setTo("aaa@qq.com");
        simpleMailMessage.setSubject("验证码");
        int i = new Random().nextInt(899999);
        int i1 = i + 10000;
        simpleMailMessage.setText("您的验证码是:" + i1);
        javaMailSender.send(simpleMailMessage);
        String str = i1 + "";
        System.out.println(str);
        return  str;
    }
}

二、 JavaMail功能分类

2.1 主要的api分类

  • 创建和解析邮件的类
  • 发送邮件的的类
  • 接受邮件的类

2.2 主要的核心类

  • session
    定义整个程序所需环境信息,如主机名,端口号,采用发送邮件和接收邮件的协议。

Session 类:javax.mail.Session 类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,例如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session 对象根据这些信息构建用于邮件收发的 Transport 和 Store 对象,以及为客户端创建 Message 对象时提供信息支持。

  • Transport
    用来发送邮件

Transport 类:javax.mail.Transport 类是发送邮件的核心API 类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如 SMTP 协议,客户端程序创建好 Message 对象后,只需要使用邮件发送API 得到 Transport 对象,然后把 Message 对象传递给 Transport 对象,并调用它的发送方法,就可以把邮件发送给指定的 SMTP 服务器。

  • store
    用来接收邮件

Store 类:javax.mail.Store 类是接收邮件的核心 API 类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如 POP3 协议,客户端程序接收邮件时,只需要使用邮件接收 API 得到 Store 对象,然后调用 Store 对象的接收方法,就可以从指定的 POP3 服务器获得邮件数据,并把这些邮件数据封装到表示邮件的 Message 对象中。

  • mesage
    表示一封邮件

Message 类:javax.mail.Message 类是创建和解析邮件的核心 API,这是一个抽象类,通常使用它的子类javax.mail.internet.MimeMessage 类。它的实例对象表示一份电子邮件。客户端程序发送邮件时,首先使用创建邮件的 JavaMail API 创建出封装了邮件数据的 Message 对象,然后把这个对象传递给邮件发送API(Transport 类) 发送。客户端程序接收邮件时,邮件接收API把接收到的邮件数据封装在Message 类的实例中,客户端程序在使用邮件解析API从这个对象中解析收到的邮件数据。

相关标签: Spring boot