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("这个是发送方的邮件地址,直接从配置文件中进行获取");
相关推荐
用户2986985301413 分钟前
Python 实战:把代码写入 Word 文档的两种实现方式
后端·python·api
瑞雪兆丰年兮20 分钟前
JavaWeb-day10-SpringBootWeb案例
java·开发语言·javaweb·web
挖掘狂人21 分钟前
六条分支,一条主干:我的 Git 分支管理心得
git·后端·程序员
程序员cxuan33 分钟前
再见了 Typora
人工智能·后端·程序员
Rain的Java大神之路36 分钟前
你背的Spring答案,全是5.x时代的:7.0.8源码一翻,80%的博客都过时了
java·后端·面试
阿卡好可爱39 分钟前
Lua 热更新不生效:改完文件线上仍是旧逻辑,package.loaded 与 upvalue 重绑定详解
数据结构·分布式·后端·架构·lua
这个昵称不容易1 小时前
考试报名系统的设计与实现(SpringBoot + MySQL + Vue 三角色平台)
java·springboot·毕设
Adellle2 小时前
设计模式指南 (Java 版) ㊁
java·开发语言·设计模式
她的男孩2 小时前
子表只读列界面能改,保存却报不允许编辑:Forge Admin 把字段权限落到子表列
spring boot·低代码·工作流引擎
杨凯凡2 小时前
MySQL 死锁怎么排查?InnoDB 锁等待与 Spring Boot 整事务重试实战
数据库·spring boot·mysql