Springboot实现qq邮件的发送

一、打开必要的邮件设置

首先登录qq邮箱官网登录之后,在设置中将传输协议给打开,我们需要用这个秘钥作为发件人的邮箱授权。


这里开启之后,记住这个秘钥。

二、代码编写

首先我们将作为发送邮件的账户信息写入配置文件。

yml 复制代码
spring:
  mail:
    host: smtp.qq.com
    username: qq邮箱地址
    password: 上面我们拿到的秘钥
    port: 465
    protocol: smtp
    default-encoding: utf-8
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true
          ssl:
            enable: true
          socketFactory:
            port: 465
            class: javax.net.ssl.SSLSocketFactory

我们可以看一下这个官方提供的简易说明:

下面写在项目中。我这里直接在新增数据之后,然后直接调用发邮件的方法,所以无需单独的接口进行触发。

java 复制代码
@Override
    public void afterAdd(QuestionInfo questionInfo) {
        if (questionInfo.getWorkPerson() != null) {
            questionInfo.setContainWay("描述/责任人/日期\n确认");
            questionInfo.setCauseAnalysis("产生原因: \n流出原因: \n验证结果:");
        }
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        String recipientEmail = "这是接收方qq邮件的地址,可以直接从用户资料中进行获取填写。";

        mailMessage.setFrom("这个是发送方的邮件地址,直接从配置文件中进行获取");
        //这是收件人
        mailMessage.setTo(recipientEmail);
	
        mailMessage.setSubject("这是文件的标题");
		//这是邮件的正文内容
        mailMessage.setText(questionInfo.getDescription());

        javaMailSender.send(mailMessage);
        
        DataProxy.super.afterAdd(questionInfo);
    }


收件人:

三、遇到的小问题

刚开始的时候,要么报错端口被占用,要么就报错连接被拒绝。然后跟着邮件给的一些格式,调整了一下配置文件内容,然后就可以了。

最后还有一个就是在代码中还需要指定发送方,否则会报错。

java 复制代码
501 mail from address must be same as authorization user

在代码里面指定一下发送方就行了

java 复制代码
mailMessage.setFrom("这个是发送方的邮件地址,直接从配置文件中进行获取");
相关推荐
楽码7 分钟前
理解自动修复:编程语言的底层逻辑
后端·算法·编程语言
RainbowSea13 分钟前
伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 03
java·spring boot·后端
Young556618 分钟前
RAG?你真的了解RAG吗?
人工智能·后端
汪子熙18 分钟前
Git 是如何检测本地 commit 中包含敏感信息的?背后的技术原理解析
javascript·后端·面试
林太白18 分钟前
npm发包自己的组件并安装更新版本应该如何做?
前端·javascript·后端
心月狐的流火号26 分钟前
Java SPI 机制与 Spring Boot 自动装配原理
java·spring boot
庄小焱27 分钟前
系统设计——DDD领域模型驱动实践
后端
柠檬味拥抱27 分钟前
【免费开源】基于STM32的蓝牙小车/智能小车项目详解(附源码)
后端
武子康27 分钟前
大数据-69 Kafka 存储结构解析:日志文件与索引文件的内部机制
大数据·后端·kafka
猩猩程序员28 分钟前
在纯Rust中实现SIMD加速算法:以ChaCha20和ChaCha12为例的经验分享
后端