网站建设哪一家好,万寿路网站建设,嘉兴网站制作平台,受欢迎的商城网站建设⛰️个人主页: 蒾酒
#x1f525;系列专栏#xff1a;《spring boot实战》 目录
内容概要
开通服务
依赖引入
配置属性
创建邮件发送工具类
测试 最近发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家…
⛰️个人主页: 蒾酒
系列专栏《spring boot实战》 目录
内容概要
开通服务
依赖引入
配置属性
创建邮件发送工具类
测试 最近发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。 点击跳转到学习网站 内容概要
本文介绍了spring boot整合email服务实现发送验证码邮件普通文本邮件、静态资源邮件、附件邮件。
坚持看完相信对你有帮助。
同时欢迎订阅springboot系列专栏持续分享spring boot的使用经验。
开通服务
实现email服务需要先将自己的邮箱开通POP3/IMAP服务才可以通过该邮箱发送邮件开通步骤如下
这里以QQ邮箱为例
1.进入QQ邮箱官网
https://wx.mail.qq.com/
2.登录后点击设置 3.选择账号 找到 POP3/IMAP.....服务这里开启你的服务这里我已经开启了的。 4.开启服务 开启成功会得到授权码 记住这个授权码。下面开始在spring boot中整合。 spring boot整合
1.依赖引入
pom.xml:
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-mail/artifactId
/dependency2.配置属性
application.yml
修改成你自己的实际信息。
spring:#邮件服务配置mail:host: smtp.qq.com #邮件服务器地址protocol: smtp #协议username: 305462*****qq.com #发送邮件的邮箱也就是你开通服务的邮箱password: fiwvcy******d #开通服务后得到的授权码default-encoding: utf-8 #邮件内容的编码
3.创建邮件发送工具类 使用component注解标记为组件可以在Service中注入使用。 里面一共定义了三种发送邮件方法 发送纯文本的普通邮件可以发送一些纯文本的消息以及验证码内容。发送HTML格式的文本内容可以发一些静态资源图片音频视频等也可以发验证码信息。发送携带附件的邮件比如word,excel,pdf文档或者其他文件。 具体可以根据业务需求调整代码。我实现的较为简单可以当个模板使用。
import jakarta.annotation.Resource;
import jakarta.mail.internet.MimeMessage;
import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;import java.io.File;
import java.util.Objects;/*** author mijiupro*/
Component
public class EmailUtil {Resourceprivate JavaMailSender mailSender;Value(${spring.mail.username})private String from ;// 发件人/*** 发送一般邮件--无附件* param to 收件人* param subject 主题* param content 内容* return 是否成功*/SneakyThrows(Exception.class)public boolean sendGeneralEmail(String subject, String content, String... to){// 创建邮件消息org.springframework.mail.SimpleMailMessage message new org.springframework.mail.SimpleMailMessage();message.setFrom(from);// 设置收件人message.setTo(to);// 设置邮件主题message.setSubject(subject);// 设置邮件内容message.setText(content);// 发送邮件mailSender.send(message);return true;}/*** 发送带附件的邮件* param to 收件人* param subject 主题* param content 内容* param filePaths 附件路径* return 是否成功*/SneakyThrows(Exception.class)public boolean sendAttachmentsEmail(String subject, String content, String[] to, String[] filePaths) {// 创建邮件消息MimeMessage mimeMessage mailSender.createMimeMessage();MimeMessageHelper helper new MimeMessageHelper(mimeMessage, true);helper.setFrom(from);// 设置收件人helper.setTo(to);// 设置邮件主题helper.setSubject(subject);// 设置邮件内容helper.setText(content);// 添加附件if (filePaths ! null) {for (String filePath : filePaths) {FileSystemResource file new FileSystemResource(new File(filePath));helper.addAttachment(Objects.requireNonNull(file.getFilename()), file);}}// 发送邮件mailSender.send(mimeMessage);return true;}/*** 发送带静态资源的邮件* param to 收件人* param subject 主题* param content 内容* param rscPath 静态资源路径* param rscId 静态资源id* return 是否成功*/SneakyThrows(Exception.class)public boolean sendInlineResourceEmail(String subject, String content, String to, String rscPath, String rscId) {// 创建邮件消息MimeMessage mimeMessage mailSender.createMimeMessage();MimeMessageHelper helper new MimeMessageHelper(mimeMessage, true);// 设置发件人helper.setFrom(from);// 设置收件人helper.setTo(to);// 设置邮件主题helper.setSubject(subject);//html内容图片String contentHtml htmlbody这是邮件的内容包含一个图片img src\cid: rscId \content/body/html;helper.setText(contentHtml, true);//指定讲资源地址FileSystemResource res new FileSystemResource(new File(rscPath));helper.addInline(rscId, res);mailSender.send(mimeMessage);return true;}}
4.编写测试用例测试
下面测试前两种发送邮件的方法。
测试发送普通文本邮件
import com.mijiu.commom.util.EmailUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;SpringBootTest
public class EmailTest {Autowiredprivate EmailUtil emailUtil;Testpublic void sendEmail() {//发送邮件boolean b emailUtil.sendGeneralEmail(测试邮件, 这是测试邮件, 你的邮箱163.com);System.out.println(b);}
} 修改成发送目标邮箱运行代码测试即可。 测试成功。 测试发送图片邮件
import com.mijiu.commom.util.EmailUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;SpringBootTest
public class EmailTest {Autowiredprivate EmailUtil emailUtil;Testpublic void sendEmail() {// 发送图片邮件boolean b emailUtil.sendInlineResourceEmail(测试邮件, 这是测试邮件, 你的邮箱163.com,C:\\Users\\mijiupro\\Desktop\\潮.jpg, C:\\Users\\mijiupro\\Desktop\\潮.jpg);System.out.println(b);}
} 修改成发送目标邮箱运行代码测试即可。