前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot高级特性之邮件发送

springboot高级特性之邮件发送

作者头像
暴躁的程序猿
发布2022-03-23 17:29:20
2760
发布2022-03-23 17:29:20
举报

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

平时我们发送邮件是通过 邮件的服务器发送出去的 比如qq邮件调用qq的邮件服务器 网易的邮件通过网易的服务器 我们使用邮件服务器发送邮件需要提前配置一些内容 我要以使用qq邮箱服务器发送邮件为例 我们登录qq邮箱 点击设置

在这里插入图片描述
在这里插入图片描述

进来之后点击账户

在这里插入图片描述
在这里插入图片描述

下拉 找到开启服务

在这里插入图片描述
在这里插入图片描述

发送一条短信之后即可开启 然后我们点击黄色框中的生成授权码 会给我们生成一个授权码 一会我们需要使用到这个授权码

在这里插入图片描述
在这里插入图片描述

复制记录好授权码

我们创建一个springboot工程

导入发送邮件的依赖

代码语言:javascript
复制
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

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

代码语言:javascript
复制
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中配置好的

代码语言:javascript
复制
@SpringBootTest
class Springboot04TaskApplicationTests {

    @Autowired
    JavaMailSenderImpl javaMailSender; 
}

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

代码语言:javascript
复制
 @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

代码语言:javascript
复制
 @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();
        }
    }

测试发送

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档