美文网首页java后台
SpringBoot系列—邮件(十五)

SpringBoot系列—邮件(十五)

作者: 海晨忆 | 来源:发表于2019-10-31 17:08 被阅读0次

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

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

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

      引入启动器:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
    

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

    邮件配置.png

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

    #配置邮箱账号
    spring.mail.username=371965177@qq.com
    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("371965177@qq.com");
            //收件人
            message.setTo("1640200266@qq.com");
            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("<h1 style='color;blue'>测试邮件内容</h1>",true);
            //addAttachment添加附件的方法。第一个是名字,第二个是file
            messageHelper.addAttachment("1.txt",new File("D:\\Download\\t.txt"));
            messageHelper.setFrom("371965177@qq.com");
            messageHelper.setTo("1640200266@qq.com");
            //这里发送的还是MimeMessage对象,并不是那个帮助类对象
            javaMailSender.send(mimeMessage);
        }
    
    }
    
    

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

    相关文章

      网友评论

        本文标题:SpringBoot系列—邮件(十五)

        本文链接:https://www.haomeiwen.com/subject/jgvtbctx.html