Javamail发送Excel附件具体实现

server/2024/11/17 13:22:50/

在我写大学生高考志愿填报的时候,将推荐出来的专业表的信息发送到指定的账户的邮件中

下面代码的实现讲解:

  • 首先创建配置文件,配置邮箱账户的信息
  • 配置用于生成表格的实体类,实体类中的信息就对应着Excel表中的信息
  • 逻辑的具体实现:
    • 首先从Cookie中获取账户的邮箱信息,(我在cookie中只存了账户的邮箱号,没有帐户其他的信息)。
    • 获取我查询结果的datas
    • 将datas封装成Excel表格
    • 发送带有Excel表格的邮件
    • 将本地的Excel表格删除掉
application.yml:
java">spring:mail:host: smtp.qq.comusername: 2asdfasdf7@qq.compassword: asdoighwakjfnsproperties:mail:smtp:ssl:enable: true
entity层:(实体类中的血法)
java">@Getter
@Setter
@TableName("t_pitch")
public class Pitch implements Serializable {private static final long serialVersionUID = 1L;@ExcelIgnore@TableId(value = "id", type = IdType.AUTO)private Integer id;/*** 院校代号*/@ExcelProperty("院校代号")@TableField("schoolCode")private String schoolCode;/*** 学校名称*/@ExcelProperty("学校名称")@TableField("schoolName")private String schoolName;/*** 专业代号*/@ExcelProperty("专业代号")@TableField("pCode")private String pCode;/*** 专业名称*/@ExcelProperty("专业名称")@TableField("pName")private String pName;/*** 最低投档分数*/@ExcelProperty("最低投档分数")@TableField("lowestScore")private String lowestScore;/*** 最低投档位次*/@ExcelProperty("最低投档位次")@TableField("lowestRank")private String lowestRank;
}
controller层代码:
java">@RequestMapping("/sendExcel")
@ResponseBody
public void sendExcel(HttpServletRequest request, HttpServletResponse response) throws MessagingException {//1、获取cookie中的邮箱信息Cookie[] cookies = request.getCookies();for(Cookie cookie:cookies){if(cookie.getName().equals("email")){email1 = cookie.getValue();break;}}//2、获取表中的信息 datas,然后生成xlsx//写文件:String tempFilePath=PATH+"专业推荐表.xlsx";EasyExcel.write(tempFilePath,Pitch.class).sheet("统计表1").doWrite(datas);//3、发送信息MimeMessage message = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(message,true);helper.setFrom("211111111@qq.com");helper.setTo(email1);helper.setSubject("邮件发送数据");helper.setText("以下是为您导出的专业推荐表");File file = new File(tempFilePath);DataSource source= new FileDataSource(file);helper.addAttachment(file.getName(),source);javaMailSender.send(message);boolean delete = file.delete();if (delete) {System.out.println("Temporary file deleted successfully.");} else {System.out.println("Failed to delete temporary file.");}}


http://www.ppmy.cn/server/142657.html

相关文章

Python 打包教程:从零开始构建可分发的Python包

Python 打包教程:从零开始构建可分发的Python包 引言 在Python开发中,打包是一个重要的环节。无论是共享代码、发布库还是部署应用,创建一个可分发的Python包都是必不可少的步骤。本文将详细介绍如何打包Python项目,涵盖从基础知…

11.12.2024刷华为OD-集合的使用,递归回溯的使用

文章目录 HJ41 集合的使用HJ43 迷宫问题--递归回溯的使用语法知识记录 HJ41 集合的使用 HJ43 迷宫问题–递归回溯的使用 def dfs(x, y, path, grid):n len(grid)m len(grid[0])if x n-1 and y m-1:for cor in path:print("({},{})".format(cor[0],cor[1]))# 判断…

JVM(二、类加载系统)

类加载器 JVM的类加载通过classLoader及其子类完成的 类加载器&#xff1a; 启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a; 负责加载存放在 <JAVA_HOME>\lib 目录中的核心类库&#xff0c;如rt.jar、resources.jar等&#xff08;或者被 -Xboot…

【PGCCC】Postgresql 文件存储层

前言 在 postgresql 数据库里&#xff0c;数据都会以表的形式组织起来。表的数据会被持久化到底层的磁盘里。负责与底层的磁盘交互&#xff0c;就是 postgresql 的文件存储层。本篇博客会依次介绍表的文件构成、分片机制和存储接口。 表的文件类型 postgresql 使用 RelFileN…

html数据类型

数据类型是字面含义&#xff0c;表示各种数据的类型。在任何语言中都存在数据类型&#xff0c;因为数据是各式各样。 1.数值类型 number let a 1; let num 1.1; // 整数小数都是数字值 ​ // 数字肯定有个范围 正无穷大和负无穷大 // Infinity 正无穷大 // -Infinity 负…

-bash: /home/xxx/anaconda3/bin/conda: No such file or directory

Linux系统中移动用户的配置文件后&#xff0c;Anaconda出现-bash: /home/shaocaiyin2023/anaconda3/bin/conda: No such file or directory错误提示。 查看PATH变量信息 echo $PATH 检查环境变量是否包含移动之后的文件目录&#xff0c;主要到*/anaconda3/bin这一层。如果没有…

51c大模型~合集46

我自己的原文哦~ https://blog.51cto.com/whaosoft/11908179 #HITS 北大李戈团队提出大模型单测生成新方法&#xff0c;显著提升代码测试覆盖率 单元测试是软件开发流程中的一个关键环节&#xff0c;主要用于验证软件中的最小可测试单元&#xff0c;函数或模块是否按预期工作…

实现 MVC 模式

实现 MVC 模式,通常可以通过分离 Model、View 和 Controller 的职责来构建一个模块化、易于维护的应用程序。以下是 MVC 的实现步骤和代码示例,以 Java Spring Boot 为例,这样的实现可以方便地应用于 Web 应用程序: 1. Model 层:数据和业务逻辑 Model 层负责应用程序的核…