SpringBoot之发送邮件(手把手教你通过Java发送邮件)

前言

我们都知道,在使用一个新的APP时经常需要我们注册,注册时需要我们输入手机号然后接受验证码,当然还有一类是需要我们输入邮箱,然后验证消息会发送到我们的邮箱,那么这个功能是如何实现的呢?话不多说 直接开干。

原理

原理也其实很简单,发送者给接收者发送邮件,邮件会先发送到一个第三方的邮件平台,然后这个第三方的平台会帮助我们进行转发,就和我们经常用到的交换机一样,他会帮我们把消息进行匹配然后发送到我们的队列中
在这里插入图片描述

开始操作

1、创建项目

只需要创建一个普通的SpringBoot项目即可,导入依赖。

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

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

2、配置yml文件

在配置yml之前,我们得先拿到第三方平台的服务器地址和我们用来发送邮箱的帐号和“QQ邮箱授权码”,这里我们使用QQ邮箱即可

首先进入QQ邮箱 点击帐号

在这里插入图片描述

翻到下面 点击 “生成授权码”

在这里插入图片描述

在这里插入图片描述

接下来我们即可开始配置我们的yml文件

server:
  port: 8080
spring:
  mail:
    host: smtp.qq.com
    username: 719801748@qq.com
    password: 填写刚刚拿到的授权码

3、发送简单邮件

    @Autowired
    private JavaMailSenderImpl javaMailSender;

    @Test
    public void sendMessage(){
    
    
        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject("这是一个标题");
        message.setText("这是邮箱正文的内容");
        message.setFrom("[email protected]");//发送者的邮箱地址
        message.setTo("[email protected]"); //接收者的邮箱地址
        javaMailSender.send(message);
    }

测试,我们打开接收者的邮箱即可看到
在这里插入图片描述

4、发送复杂邮件(附带图片文件啥的)


    @Test
    public void sendHighMessage() throws MessagingException {
    
    
        MimeMessage message = javaMailSender.createMimeMessage();

        MimeMessageHelper helper = new MimeMessageHelper(message, true); //true表示会携带一些附件品(文件,图片等)
        helper.setSubject("这是标题");
        helper.setText("<b>我是加粗的正文</b>",true);//true表示可以携带一些html标签内容
        helper.addAttachment("我是旋涡鸣人.jpg",new File("C:\\Users\\LENOVO\\Desktop\\保持初心,做好自己.jpg"));//携带附属物 1、文件名 2、文件
        helper.setFrom("[email protected]");
        helper.setTo("[email protected]");

        javaMailSender.send(message);
    }

测试,我们打开接受者的邮箱即可看到我们发送的信息和图片
在这里插入图片描述

我们预览一下图片看看:

在这里插入图片描述
完结撒花,就是这么简单。我们还可以结合定时任务,每天早上给你喜欢的人定时发送一封早安邮件啥的,这些土味的事情就由你们去发挥想象哈。哈哈

后记

生活明朗、万物可爱、人间值得、未来可期。
将来的你,一定会感谢现在努力拼搏的自己

猜你喜欢

转载自blog.csdn.net/weixin_45647685/article/details/112125620