在日常生活中,我们在一个网站中注册一个账户时,往往在提交个人信息后,网站还要我们通过手机或邮件来验证,邮件的话大概会是下面这个样子的:
1.1 邮件发送过程
1.2 邮件发送一般会设计到几个协议:SMTP和POP3
1.3 开通邮件发送的SMTP和POP3协议的服务
2.1 创建SpringBoot工程
2.1.1 配置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/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.gmw.boot</groupId>
<artifactId>send_meail</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>send_meail</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
加入这个核心依赖
2.1.2 配置application.application文件
#端口号
server.port=8888
#配置thymeleaf模板引擎
spring.thymeleaf.mode=HTML
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.cache=false
#配置邮件设置
#配置QQ邮箱的host的地址
spring.mail.host=smtp.qq.com
#开通QQ邮箱的用户名
spring.mail.username=ganmaowang@qq.com
#设置密码(但要注意,不是设置QQ密码,而是指定发送)
spring.mail.password=vunqpeajrjzmbiac
#设置属性,指定邮件的信息进行加密
spring.mail.properties.mail.smtp.ssl.enable=true
2.1.3 编写发送邮箱的代码
package com.gmw.boot.send_meail;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
@SpringBootTest
class SendMeailApplicationTests {
//要发送邮件,需要注入javaMailSender
@Autowired
private JavaMailSenderImpl javaMailSender;
@Value("${spring.mail.username}")
public String from;
/**
* 简单邮件发送测试:(不携带附件的邮件,就称为:简单邮件)
*/
@Test
void contextLoads() {
//创建一个简单的邮箱
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
//发送给谁
simpleMailMessage.setTo("751729326@qq.com");
//发送的主题
simpleMailMessage.setSubject("未进化的程序猿给你来一条劲爆的消息");
//发送的消息内容
simpleMailMessage.setText("前面有一群母猪排队掉到水坑里,哈哈!!!");
//发送人
simpleMailMessage.setFrom(from);
//发送
javaMailSender.send(simpleMailMessage);
System.out.println("邮件发送成功!");
}
}