06.发送邮件
在使用javaSE时,我们会发现发送邮件较为麻烦,而在SpringBoot中,发送邮件就变成一件较为简单的时。
导入mail的maven的启动类。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
修改application配置文件
spring.mail.username=yume@qq.com
spring.mail.password=自己的密钥
spring.mail.host=smtp.qq.com
#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=ture
首先username即是我们的邮箱名称,password我们将会详细的讲解如何获取(以qq邮箱为例)。
在我们进入QQ邮箱后,进入设置界面。然后在邮箱设置下选择账户界面
然后下滑,选择开启POP3/SMTP服务。
在开启后,QQ邮箱会要求你进行认证,在完成认证后,即可获得密钥。我们将其复制到password的值中即可。
除此之外,QQ邮箱需要开启加密验证。
编写邮件
我们在我们的测试类中进行对邮件发送的代码进行测试。
@SpringBootTest
class SwaggerStudyApplicationTests {
@Resource
JavaMailSenderImpl javaMailSender;
@Test
void contextLoads() {
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setSubject("This is a title");
mailMessage.setText("Diamond ! !");
mailMessage.setTo("yume@qq.com");
mailMessage.setFrom("yume@qq.com");
javaMailSender.send(mailMessage);
}
@Test
void sendMimeMail() throws MessagingException {
MimeMessage mailMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper= new MimeMessageHelper(mailMessage,true);
helper.setSubject("This anther titer");
helper.setText("YUME !");
helper.setTo("yume@qq.com");
helper.setFrom("yume@qq.com");
helper.addAttachment("picture.png",new File("图片位置"));
javaMailSender.send(mailMessage);
}
}
改些代码都十分的简洁明了,上面是简单的邮件发送,下面的是mime邮件发送,我们可以进行对其进行附件的添加,例如图片等。我们需要使用的类为JavaMailSenderImpl,因此我们需要将其引入,在较为低版本中的JavaMailSenderImpl是使用@Autowired注入的,高版本的mail是使用@Resource。
-
setSubject 为设置标题
-
setText 为设置正文
-
setTo 设置接受邮箱
ired注入的,高版本的mail是使用@Resource。 -
setSubject 为设置标题
-
setText 为设置正文
-
setTo 设置接受邮箱
-
setFrom 设置发送邮箱