企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
案例代码:https://gitee.com/flymini/codes03/tree/master/learn-bootemail **** 可以使用 SpringBoot 提供的如下 api 完成邮件发送服务。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` :-: ![](https://img.kancloud.cn/7b/4a/7b4af999ac6a0738e1dcea37fc74f3e2_1384x358.webp) 邮件发送流程 步骤如下: [TOC] # 1. 获取发件邮箱的SMTP服务器信息 >[info]这里将 QQ 邮箱作为发件邮箱,所以需要获取 QQ 邮箱的 SMTP 服务器信息。 **1. 登录 QQ 邮箱并开启 SMTP 服务** ![](https://img.kancloud.cn/05/49/0549687a90dea916e2cf1e20a8e414d3_1983x325.png) ![](https://img.kancloud.cn/75/c7/75c7dc86555a052afd34ad0447c2f18b_2015x284.png) ![](https://img.kancloud.cn/21/82/2182b799e203074c358cd62ce0ca8742_1893x280.png) <br/> **2. 获取 SMTP 服务授权码** ![](https://img.kancloud.cn/27/7f/277fbc0b22479386e0afd2e3accdfe5f_1684x196.png) ![](https://img.kancloud.cn/65/71/6571fcc79ca69be3c5f076e418fc55f6_1614x535.png) <br/> **3. 获取 SMTP 服务器地址和端口** ![](https://img.kancloud.cn/c6/77/c67752bf6175eb99602032bd68d123a3_1596x190.png) ![](https://img.kancloud.cn/66/4b/664b4bd500b534ea7092e6277994b2d0_1697x499.png) <br/> # 2. 代码编写 **1. 引入 spring-boot-starter-mail** ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` <br/> **2. 配置 SMTP 服务器信息** *application.yml* ```yml spring: mail: host: smtp.qq.com port: 465 username: xxxx10@qq.com #你的qq邮箱 password: asuculfldbyddjeh #授权码 properties: mail: smtp: ssl: enable: true ``` <br/> **3. 发送邮件** 【1】发送只有文本的简单邮件。 ```java @SpringBootTest class EmailApplicationTests { @Autowired JavaMailSender mailSender; /** * 发送只有文本的简单邮件 */ @Test public void simpleEmail() { SimpleMailMessage message = new SimpleMailMessage(); message.setSubject("邮件主题"); message.setText("邮件正文"); //发件邮箱 message.setFrom("xxx010@qq.com"); //收件邮箱 message.setTo("xxxvb@163.com", "xxxjm@163.com"); mailSender.send(message); } } ``` ![](https://img.kancloud.cn/21/8d/218dd6346f1e7b0fe7709283ad0c155a_1451x314.png) <br/> 【2】发送带有附件的邮件。 ```java @SpringBootTest class EmailApplicationTests { @Autowired JavaMailSender mailSender; /** * 发送带有附件的邮件 */ @Test public void formalEmail() throws Exception { MimeMessage mimeMessage = mailSender.createMimeMessage(); //MimeMessageHelper(MimeMessage mimeMessage, boolean multipart) //multipart=true:则可以上传文件 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setSubject("邮件主题"); //setText(String text, boolean html) //text:邮件正文 //html=true:则表示邮件正文渲染为html,否则就是文本 helper.setText("<b style='color:red'>这是邮件正文</b>", true); //发件人 helper.setFrom("2149582010@qq.com"); //收件人 helper.setTo(new String[]{"erthvb@163.com", "wu58jm@163.com"}); //上传文件 helper.addAttachment("GitHub入门与实践.pdf", new File("f:/GitHub入门与实践.pdf")); helper.addAttachment("W3School离线手册.chm", new File("f:/W3School离线手册.chm")); mailSender.send(mimeMessage); } } ``` ![](https://img.kancloud.cn/5d/96/5d96c9ec3c07cdc6f82ba94532308da2_1596x523.png)