SpringBoot系列—邮件(十五)

个人博客:haichenyi.com。感谢关注

  邮件发送是必不可少的,不管是注册邮件,还是广告。

  spring boot中已经集成的mail的启动器,所以,我们只用配置好就行了。

  引入启动器:

    
        org.springframework.boot
        spring-boot-starter-mail
    

  那么,需要配置什么内容呢?我们之前讲过,需要配置的东西,spring boot都给我们提前准备好了,都在自动配置类AutoConfigure那个类里面,我们可以找一找,里面有个mail包,这个就是邮件的相关配置类。

SpringBoot系列—邮件(十五)_第1张图片
邮件配置.png

  我们可以看到上面的prefix中的spring.mail就是我们的配置文件中的前缀,这个类里面的公共变量,就是我们配置文件中的键。我们这里配置了四个值。

#配置邮箱账号
[email protected]
spring.mail.password=XXXXXXX
#配置发送邮件服务器
spring.mail.host=smtp.qq.com
#配置ssl安全连接
spring.mail.properties.smtp.ssl.enable = true

  这里的密码,我们不能填,我们的QQ号密码吧?需要在你的QQ邮箱去设置。生成授权码即可。直接百度一下:QQ邮箱怎么生成授权码,有教程。然后,把生成的授权码填到这里就行了。配置就这么多

  怎么发送邮件呢?也很简单,分两种,一种是简单的文字邮件,一种是复杂带附件的邮件。

package com.haichenyi.springboottask;

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;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

@SpringBootTest
class SpringBootTaskApplicationTests {
    @Autowired
    JavaMailSenderImpl javaMailSender;
    @Test
    void contextLoads() {
        //简单邮件
        SimpleMailMessage message = new SimpleMailMessage();
        //邮件标题
        message.setSubject("测试邮件功能标题");
        //邮件内容
        message.setText("测试邮件内容");
        //发件人,必须要跟配置的相同
        message.setFrom("[email protected]");
        //收件人
        message.setTo("[email protected]");
        javaMailSender.send(message);
    }

    @Test
    public void testMail() throws MessagingException {
        //带附件邮件,通过createMimeMessage()方法获取对象
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //这里带附件的邮件需要用到这个帮助类
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true);

        messageHelper.setSubject("测试邮件功能标题");
        //可以发送html语句,第一个参数是内容,第二个参数设置为true即可。
        messageHelper.setText("

测试邮件内容

",true); //addAttachment添加附件的方法。第一个是名字,第二个是file messageHelper.addAttachment("1.txt",new File("D:\\Download\\t.txt")); messageHelper.setFrom("[email protected]"); messageHelper.setTo("[email protected]"); //这里发送的还是MimeMessage对象,并不是那个帮助类对象 javaMailSender.send(mimeMessage); } }

  每一行都有注释,已经写的很清楚了,就不做过多的解释了。

你可能感兴趣的:(SpringBoot系列—邮件(十五))