36.0、springboot-mail邮件发送
我们来用springboot发送一封简单的邮件
第一步:首先导入mail相关的依赖
<!--mail邮件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
第二步:登录自己的QQ邮箱点击账户
然后找到POP3/SMTP服务点击开启
按照提示获取加密密码,复制一下
然后配置一下application.properties文件
配置自己的邮箱
粘贴获取得到的加密密码
配置主机
开启加密验证
spring.mail.username=123456789@qq.com
spring.mail.password=abcdefghijklmnopqrstuvwxyz
spring.mail.host=smtp.qq.com
#开启加密验证
spring.mail.properties.mail.smtl.ssl.enable=true
第三步:在测试类中发送一封邮件给自己的邮箱试试看,启动springboot项目测试类
package com.hkl;
import com.hkl.service.AsynchronousService;
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
private JavaMailSenderImpl mailSender;
@Test
void contextLoads() {
//一个简单的邮件~
SimpleMailMessage mailMessage = new SimpleMailMessage();
//设置主题
mailMessage.setSubject("hkl发送了一篇邮件给你");
//设置内容
mailMessage.setText("这是hkl的一篇邮件内容");
mailMessage.setTo("123456789@qq.com");//设置要发送给谁
mailMessage.setFrom("123456789@qq.com");//设置自己的邮箱
mailSender.send(mailMessage);
}
}
启动之后查看自己的邮箱确实收到了刚刚自己发送的邮件,不过要记得连网不然会发送失败
好了一封简单的邮件完成了,我们再来写一封复杂的邮件试试看
@Test
void contextLoads2() throws MessagingException {
//一个复杂的邮件~
MimeMessage mimeMessage = mailSender.createMimeMessage();
//组装~
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);//true开启多文本发送模式
//正文
helper.setSubject("hkl发送了一篇邮件给你");
helper.setText("<p style='color: red;'>这是hkl的一篇邮件内容~</p>",true);//true开启html支持
//附件
helper.addAttachment("1.jpg",new File("C:\\Users\\86139\\Desktop\\1.jpg"));
helper.addAttachment("2.jpg",new File("C:\\Users\\86139\\Desktop\\2.jpg"));
helper.setTo("123456789@qq.com");
helper.setFrom("123456789@qq.com");
mailSender.send(mimeMessage);
}
对比第一份简单在这个测试类中我们用的是MimeMessage而不是SimpleMailMessage
下面再用MimeMessageHelper对象来组装邮件的发送、
我们可以自己把这个方法写成一个工具类,方便我们在工作中使用,封装这个发送邮件的方法很简单,改改参数即可
在真实的开发中一般会放在Controller类中