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

基于SpringBoot构造超简易QQ邮件服务发送 第二版

目录

追加 邮箱附件

添加依赖

编码

测试


第二版的更新点是追加了 邮箱附件功能 ( 后期追加定时任务 )

基于SpringBoot构造超简易QQ邮件服务发送(分离-图解-新手) 第一版

追加 邮箱附件

添加依赖

        <!--    电子邮件    --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId><version>2.7.18</version></dependency><!-- javax.mail API --><dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.6.2</version></dependency>

编码

为了方便直接在控制层写了

package com.takem.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;@RestController
public class EmailController {@Autowiredprivate JavaMailSender mailSender;@GetMapping("/email")public String sendSimpleMessage() throws MessagingException {MimeMessage mimeMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom("你的邮箱");helper.setTo("对方的邮箱");helper.setSubject("测试标题");helper.setText("测试内容");// 添加文件helper.addAttachment("文件名(包含后缀名)", new File("文件的路径(写死都没事)"));mailSender.send(mimeMessage);return "发送成功";}
}

测试

(到底啦~更多关注 公粽号  wmcode 获取更多信息)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】
  • HTML(30)——动画
  • QT调节屏幕亮度
  • 每日一练 - RSTP响应端口故障后的处理流程
  • springsecurity(学习自用)
  • 【漏洞复现】29网课交单平台 SQL注入
  • HTML5+JavaScript单词游戏
  • 博美犬插画:成都亚恒丰创教育科技有限公司
  • 葵花奖见证品牌实力 乐橙旗舰智能锁公开首秀引全场热议
  • java-反射 2
  • Segmentation fault (core dumped)
  • 3.结果映射ResultMap(关联association+collection)
  • 图像分割入门-SegNet理论与实践
  • Github绑定自己的域名
  • C语言 -- 操作符详解​
  • ECMAScript6(0):ES6简明参考手册
  • es的写入过程
  • HTML-表单
  • Invalidate和postInvalidate的区别
  • Java读取Properties文件的六种方法
  • JS基础之数据类型、对象、原型、原型链、继承
  • js数组之filter
  • php中curl和soap方式请求服务超时问题
  • XML已死 ?
  • 记一次删除Git记录中的大文件的过程
  • 使用API自动生成工具优化前端工作流
  • 数据可视化之 Sankey 桑基图的实现
  • 算法---两个栈实现一个队列
  • 算法-图和图算法
  • 算法之不定期更新(一)(2018-04-12)
  • MyCAT水平分库
  • ​Java并发新构件之Exchanger
  • ​Python 3 新特性:类型注解
  • ​secrets --- 生成管理密码的安全随机数​
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • ## 1.3.Git命令
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #QT(串口助手-界面)
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (003)SlickEdit Unity的补全
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (rabbitmq的高级特性)消息可靠性
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • ./configure,make,make install的作用
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CLR基本术语
  • .net core Swagger 过滤部分Api
  • .Net Core 微服务之Consul(二)-集群搭建