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

springboot实现发送邮件开箱即用

springboot实现发送邮件开箱即用

      • 环境
      • 依赖包
      • yml配置
      • Service层
      • Controller层
      • 测试

环境

jdk17
springboot版本3.2.1

依赖包

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

yml配置

我用的是qq邮箱,port是465
如果用的是其他的邮箱,自己修改这个端口,可能是25
ssl:true这个必须配置,不加会报错

不要复制,自己输,复制格式会出错
邮箱就自己的邮箱
秘密要开启stmp的时候系统给那个,不是自己设置的qq邮箱秘密

spring:mail:host: smtp.qq.comport: 465username: xxxx@qq.compassword: xxxxdefault-encoding: UTF-8properties:mail:smtp:auth: truessl:enable: true

Service层

把setFrom里的邮箱换成自己的,就yml中配置那个

package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;@Service
public class EmailService {@Autowiredprivate JavaMailSender javaMailSender;public void sendSimpleEmail(String to, String subject, String text) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom("xxx@qq.com");message.setTo(to);message.setSubject(subject);message.setText(text);javaMailSender.send(message);}
}

Controller层

to后面的是收件人地址

package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/email")
public class EmailController {@Autowiredprivate EmailService emailService;@GetMapping("/send")public String sendEmail() {String to = "xxx@qq.com";String subject = "邮件提醒";String text = "这是一条测试邮件";emailService.sendSimpleEmail(to, subject, text);return "邮件发送成功";}
}

测试

用postman直接请求对应的接口地址
不需要任何参数
测试结果如下
在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/265869.html

相关文章:

  • 论文阅读——RS DINO
  • 【即插即用篇】YOLOv8改进实战 | 引入 Involution(内卷),用于视觉识别的新一代神经网络!涨点神器!
  • 在Excel中,如何简单快速地删除重复项,这里提供详细步骤
  • 【Kafka-Eagle】EFAK告警配置与实践
  • 机器学习 | 概率图模型
  • 25、新加坡南洋理工、新加坡国立大学提出FBCNet:完美融合FBCSP的CNN,EEG解码SOTA水准![抱歉老师,我太想进步了!]
  • 单调栈分类、封装和总结
  • 【Amazon 实验①】使用 Amazon CloudFront加速Web内容分发
  • <math.h> 头文件:C语言数学库函数
  • 1.CentOS7网络配置
  • Prompt-to-Prompt:基于 cross-attention 控制的图像编辑技术
  • 搭载紫光展锐芯的移远通信RedCap模组顺利通过中国联通OPENLAB实验室认证
  • 16-高并发-队列术
  • 【设计模式-2.5】创建型——建造者模式
  • VideoPoet: Google的一种用于零样本视频生成的大型语言模型
  • pytest常用命令行参数
  • 05. Springboot admin集成Actuator(一)
  • AI生成SolidUI-新版本架构调试Debug
  • ctfshow sql 195-200
  • 微信小程序实现地图功能(腾讯地图)
  • Vue如何请求接口——axios请求
  • 【数据结构一】初始Java集合框架(前置知识)
  • 直接将第三方数据插入到 Redis 中
  • 【重点】【DP】322.零钱兑换
  • Python入门学习篇(六)——for循环while循环
  • el-table 实现行拖拽排序
  • 2. 结构型模式 - 桥接模式
  • 最小二乘法简介
  • mathtype公式章节编号
  • 医学实验室检验科LIS信息系统源码