springboot高级特性之邮件发送

我们平时经常会碰到email邮件发送的场景 如发送验证码,向客户发送邮件等等。
springboot中 整合了mail帮助我们更方便的发送邮件

平时我们发送邮件是通过 邮件的服务器发送出去的 比如qq邮件调用qq的邮件服务器 网易的邮件通过网易的服务器 我们使用邮件服务器发送邮件需要提前配置一些内容
我要以使用qq邮箱服务器发送邮件为例
我们登录qq邮箱 点击设置
在这里插入图片描述
进来之后点击账户
在这里插入图片描述
下拉 找到开启服务
在这里插入图片描述
发送一条短信之后即可开启 然后我们点击黄色框中的生成授权码 会给我们生成一个授权码 一会我们需要使用到这个授权码

在这里插入图片描述
复制记录好授权码

我们创建一个springboot工程

导入发送邮件的依赖

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

然后我们编写配置文件 ssl的加密记得要配置 别删除

spring.mail.username=qq账号@qq.com
spring.mail.password=刚刚的授权码
#注解地址
spring.mail.host=smtp.qq.com
# 配置邮件编码
spring.mail.default-encoding=UTF-8
#开启ssl
#spring.mail.properties.mail.smtp.ssl.enable=true
# 配饰 SSL 加密工厂
spring.mail.properties.mail.smtp.socketFactoryClass=javax.net.ssl.SSLSocketFactory
# 表示开启 DEBUG 模式
spring.mail.properties.mail.debug=true

编写一个测试类
注入发送邮件的对象 这个是MailAutoConfiguration中配置好的


@SpringBootTest
class Springboot04TaskApplicationTests {

    @Autowired
    JavaMailSenderImpl javaMailSender; 
}

发送普通邮件 编写一个测试方法

 @Test
    void contextLoads() {
        SimpleMailMessage message = new SimpleMailMessage();
        //邮件设置  设置标题
        message.setSubject("通知--放假七天");
        //设置内容
        message.setText("今天开始放假放七天");
        //发给谁
        message.setTo("对方的qq@qq.com");
        //谁发的
        message.setFrom("你的qq要和配置文件中的一致@qq.com");
        //发送
        javaMailSender.send(message);
    }

发送测试

在这里插入图片描述
我们看到很多文件带有附件 图片或者文档等等 我们测试如何发送带附件的邮件

发送带附件的邮件 需要使用MimeMessage对象 但这个对象无法直接操作消息
我们需要另一个类帮助
MimeMessageHelper

 @Test
    public void test02(){
        //创建复杂的消息
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //参数   参数一是 mimeMessage   参数二是  是否上传文件  布尔值
        try {
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
             helper.setSubject("今天开学");
             //Text兼容html片段    参数二 表示当前是否是html标签
             helper.setText("<b style='color:red'>今天开学啦!!</b>",true);
             //上传文件  参数文件名 参数二 文件位置 或一个流
            helper.addAttachment("bird.jpg",new File("C:\\Users\\Desktop\\v2-ae4216ed7f423bee2cc037198639dfda_r.jpg"));
             helper.setTo("对方@qq.com");
             helper.setFrom("你的qq@qq.com");
             javaMailSender.send(mimeMessage);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

测试发送
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值