发送邮件
在web开发中,发送邮件是一个很常用的功能,Spring Boot也集成了发送邮件的功能
基本使用
使用Spring Boot的发送邮件功能,需要导入邮件的starter依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置邮件发送服务器的配置,如果是qq邮箱,password属性为邮箱的授权码
spring:
mail:
host: smtp.qq.com
username: 425017255@qq.com
password: xxxxxxxx
properties:
mail.smtp.ssl.enable: true
创建一个简单邮件对象SimpleMailMessage
,设置邮件的主题,内容,发件人和收件人,然后自动注入JavaMailSenderImpl
对象,使用这个对象的send方法发送邮件
@SpringBootTest
class DemoApplicationTests {
@Autowired
JavaMailSenderImpl mailSender;
@Test
void contextLoads() {
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("测试邮件");
message.setText("这是一封测试邮件");
message.setTo("blackball1998@outlook.com");
message.setFrom("425017255@qq.com");
mailSender.send(message);
}
}
这样就可以发送简单邮件了
发送复杂邮件
发送复杂邮件,可以使用发送类的createMimeMessage
方法创建一个复杂邮件对象MimeMessage
,这个方法还有一个重载方法,可以读取IO流创建邮件对象
创建一个用于设置邮件的对象MimeMessageHelper
,这个对象可以设置多种邮件的常用属性,这里以设置附件为例
@SpringBootTest
class DemoApplicationTests {
@Autowired
JavaMailSenderImpl mailSender;
@Test
void contextLoads() throws MessagingException {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(message, true, "utf-8");
messageHelper.setSubject("测试复杂邮件");
// 设置带样式的正文,使用html的方式设置样式
messageHelper.setText("<h1>这是一封测试邮件</h1><p style='color:red'>请查收附件</p>",true);
// 读取本地的一个文件,设置邮件的附件
messageHelper.addAttachment("附件1.jpg",new File("1.png"));
messageHelper.addAttachment("附件2.jpg",new File("2.png"));
messageHelper.setTo("blackball1998@outlook.com");
messageHelper.setFrom("425017255@qq.com");
mailSender.send(message);
}
}
设置好邮件的属性,然后用发送类发送邮件,就可以收到复杂邮件
邮件中的附件也可以打开