当前位置: 首页 > article >正文

SpringBoot使用QQ邮箱发送邮件

1.开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

设置 -> 账号 -> POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
在这里插入图片描述

获取授权码

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

SpringBoot依赖

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

SpringBoot配置

spring:
  application:
    name: springboot-hello
  mail:
    host: smtp.qq.com # 配置邮件发送主机地址
    port: 465 # 配置邮件发送服务端口号
    protocol: smtp # 配置邮件发送服务协议
    username: *********@qq.com # 配置邮件发送者用户名或者账户
    password: ********** # 配置邮件发送者密码或者授权码
    default-encoding: UTF-8 # 配置邮件默认编码
    properties:  # 配置smtp相关属性
      mail:
        smtp:
          ssl:
            enable: true
            required: true

发送代码

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MailSimpleTest {
    @Resource
    private JavaMailSender javaMailSender;

    @Test
    public void sendSimpleMail() {
        SimpleMailMessage message = new SimpleMailMessage();
        //  配置发送者邮箱,需要和配置文件中的 spring.mail.username 保持一致
        message.setFrom("*******@qq.com");
        //  配置接受者邮箱
        message.setTo("*******@163.com");
        //  配置邮件主题
        message.setSubject("主题:简单邮件");
        //  配置邮件内容
        message.setText("测试邮件内容");
        //  发送邮件
        javaMailSender.send(message);
    }
}

发送结果

在这里插入图片描述
参考地址


http://www.kler.cn/a/291005.html

相关文章:

  • 新版国标GB28181设备端Android版EasyGBD支持国标GB28181-2022,支持语音对讲,支持位置上报,开源在Github
  • 高效处理PDF文件的终极工具:构建一个多功能PDF转换器
  • android studio更改应用图片,和应用名字。
  • 如何优雅的关闭GoWeb服务器
  • 【自动化】Python SeleniumUtil 工具 开启开发者模式 自动安装油猴用户脚本等
  • Redis常见阻塞原因总结
  • NL2SQL:基于LLM的解决方案是最好的吗?
  • 利用javacv实现视频转h264
  • 万物皆对象 - 一文详解JS面向对象编程的核心方法
  • C# WPF上位机与PLC如何是实现通信同步
  • 华为云Flexus云服务器X实例与AI大模型融合实践:打造高效智能应用
  • 二、基本语法配置请求
  • 果蔬识别系统性能优化之路
  • 集成电路学习:什么是MCU微控制器
  • 软件测试中错误推断法(错误猜测法或错误推测法)
  • 排序
  • MATLAB基础应用精讲-【数模应用】极差分析(附MATLAB、python和R语言代码实现)
  • 深度学习(八)-图像色彩操作
  • 基于FCM模糊聚类算法的图像分割matlab仿真
  • 【小设计】基于宏实现的C++ 可复用setter 和getter设计
  • 嵌入式面经 嵌入式软件开发 嵌入式硬件开发 经纬恒润嵌入式面试汇总总结
  • RK3588平台开发系列讲解(显示篇)图像的宽高和跨距
  • scss中的mix函数
  • 基于深度学习的人机交互中的认知模型
  • Google 的 9 年职业生涯回顾
  • ubuntu通过smba访问华为设备