1. 配置邮箱服务,以 QQ 为例
【注意】:如果你的 QQ 开启了登录保护,需要关掉,否则无法使用此功能。
2.1 首先需要开启邮箱相关服务,操作如下:
2.2 点击开启后需要验证手机号开启下面功能
2.3 发送成功后,出现如下界面。此时生产的密码就是我们发送邮件时要填写的账号密码(密码并非 QQ 的登录密码)。
至此,邮箱配置就全部做完了,接下来就是编写代码了
2. 编码实现
2.1 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<atrifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.2 配置账号信息
#发件人账号
spring.mail.username = 3278798455@qq.com
#密码:不是登录账号的密码,需要在邮箱中心配置 2.3所得到的密码
spring.mail.password = jwwysfflsvskdbhb
#邮箱服务器,可在邮箱中心查看
spring.mail.host = smtp.qq.com
#开启 SSL 安全连接,否则会报错
spring.mail.properties.mail.smtp.ssl.enable = true
2.3 编码实现
package com.example.demo;
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.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.internet.MimeMessage;
import java.io.File;
@SpringBootTest
class DemoApplicationTests {
//自动注入邮件的发送器
@Autowired
private JavaMailSender sender;
//发送简单类型的邮件
@Test
public void send1() {
//创建简单邮件的消息封装对象
SimpleMailMessage message = new SimpleMailMessage();
//邮件封装
message.setSubject("邮件标题");
message.setText("邮件内容");
message.setTo("1641960648@qq.com");//收件人 可以写多个 也可以写其他邮箱地址
message.setFrom("3278798455@qq.com");//发件人
sender.send(message);
}
//发送复杂类型的邮件
@Test
public void send2() throws Exception{
//创建复杂邮件的消息封装对象
MimeMessage mimeMessage = sender.createMimeMessage();
//创建邮件内容封装的的帮助对象 true:表示要上传文件
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
//邮件封装
helper.setSubject("邮件标题");
//邮件内容可以是 HTML 标签
helper.setText("<b style='color:red'>邮件内容</b>", true);
helper.setTo("1641960648@qq.com");//收件人 可以写多个 也可以写其他邮箱地址
helper.setFrom("3278798455@qq.com");//发件人
//上传文件 以附件的形式
helper.addAttachment("1.jpg", new File("C:\\Users\\一曲华胥乱世成殇\\Pictures\\本机照片\\69.jpg"));
helper.addAttachment("2.png", new File("C:\\Users\\一曲华胥乱世成殇\\Pictures\\本机照片\\231.png"));
sender.send(mimeMessage);
}
}