📢📢📢📣📣📣
哈喽!大家好,我是【一心同学】,一位上进心十足的【Java领域博主】!😜😜😜
✨【一心同学】的写作风格:喜欢用【通俗易懂】的文笔去讲解每一个知识点,而不喜欢用【高大上】的官方陈述。
✨【一心同学】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。
✨如果有对【后端技术】感兴趣的【小可爱】,欢迎关注【一心同学】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
目录
前言
发送邮件可以说是网站的必备拓展功能之一,注册验证,忘记密码或者是给用户发送营销信息,这些都需要我们去实现邮箱功能。
一、准备工作
(1)导入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
(2)获取授权码:在QQ邮箱中的设置->账户->开启pop3和smtp服务
这个时候就会弹出我们的授权码,记录一下。
(3)编写配置文件
application.yml:
spring:
mail:
# 配置 SMTP 服务器地址
host: smtp.qq.com
# 发送者邮箱
username: 12*****15@qq.com
# 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
password: 授权码信息
# 端口号465或587
port: 587
# 默认的邮件编码为UTF-8
default-encoding: UTF-8
# 配置SSL 加密工厂
properties:
mail:
smtp:
socketFactoryClass: javax.net.ssl.SSLSocketFactory
#表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误
debug: true
常见的邮箱基本信息:
邮箱 | SMTP服务器地址 | 端口号 |
126邮箱 | smtp.126.com | 465或者994 |
163邮箱 | smtp.163.com | 465或者994 |
QQ邮箱 | smtp.qq.com | 465或587 |
二、发送普通邮件
(1)编写测试
package com.yixin.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.JavaMailSenderImpl;
@SpringBootTest
class DemoApplicationTests {
@Autowired
JavaMailSenderImpl mailSender;
@Test
public void contextLoads() {
// 构建一个邮件对象
SimpleMailMessage message = new SimpleMailMessage();
// 设置邮件主题
message.setSubject("一心的课堂");
// 设置邮件的正文
message.setText("想学【后端】就关注【一心同学】");
// 设置邮件接收者,可以有多个接收者,中间用逗号隔开,以下类似
//message.setTo("12******15@qq.com","17*****3@qq.com");
// 设置邮件接收人,可以有多个接收人
message.setTo("17******3@qq.com");
// 设置邮件发送者,这个跟application.yml中设置的要一致
message.setFrom("12*****15@qq.com");
// 发送邮件
mailSender.send(message);
}
}
(2)查看QQ邮箱
三、发送文件
(1)编写测试
package com.yixin.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.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
@SpringBootTest
class DemoApplicationTests {
@Autowired
JavaMailSenderImpl mailSender;
@Test
public void contextLoads2() throws MessagingException {
//邮件设置2:一个复杂的邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
// true表示构建一个可以带附件的邮件对象
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject("一心课堂");
helper.setText("<b style='color:red'>【发送文件测试】</b>",true);
//发送附件
// 第一个参数是自定义的名称,后缀需要加上,第二个参数是文件的位置
helper.addAttachment("name.jpg",new File("C:\\Users\\Administrator\\Desktop\\new1\\img\\1.jpg"));
helper.setTo("12******5@qq.com");
helper.setFrom("12******5@qq.com");
mailSender.send(mimeMessage);
}
}
(2)查看QQ邮箱
查看邮箱,邮件接收成功!
结语
以上就是【一心同学】整理的基于SpringBoot搭建发送邮件功能的知识点讲解,大家可以自己上手测试一下,在实际开发中,这个功能还是相当实用的。