spring-boot-starter-mail 定义邮件工具类EmailHelper

注意

  • 想把这个工具类定义成工具类,所以所有的方法都是静态方法,使用的变量处理参数理所当然都是静态变量
  • 期初使用的是@Autowired 和 @Value进行注解,但是这两个注解是依赖于实例,静态方法是不依赖实例的,所以 from 在发送邮件的时候一直是null(不知道@Autowired 为什么能注入成功)
    在这里插入图片描述
  • 改变思路:
  • 将类注解为@Component,确保能够被IOC容器检测到
  • 使用非静态方法代替直接注入,使用方法进行注入
@Component
public class EmailHelper {private static JavaMailSender mailSender;private static String from;@Autowiredpublic void setJavaMailSender(JavaMailSender javaMailSender) {EmailHelper.mailSender = javaMailSender;}@Value("${spring.mail.username}")public void setFrom(String from) {EmailHelper.from = from;}
}

简易邮件

/*** 发送简易邮件* @param to 收件人* @param subject 主题* @param content 内容* @return 是否发送成功*/public static   boolean sendEmail(String to, String subject, String content) {try {SimpleMailMessage mailMessage = new SimpleMailMessage();//设置发送人mailMessage.setFrom(from);//邮件主题mailMessage.setSubject(subject);//邮件内容:普通文件无法解析html标签mailMessage.setText(content);//收件人mailMessage.setTo(to);//发送邮件mailSender.send(mailMessage);} catch (MailException e) {throw new RuntimeException(e);}return true;}

群发简易邮件

/*** 群发邮件* @param tos 收件人列表* @param subject 主题* @param content 内容* @return 是否发送成功*/
public static boolean sendEMailMass(List<String> tos, String subject, String content) {boolean result = true;for (String to : tos) {boolean b = sendEmail(to, subject, content);if (!b) {result = false;}}return result;
}

携带附件的邮件

群发携带附件的邮件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/706601.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Spring启动的时候执行一些操作

如何在Spring启动的时候执行一些操作 在Spring启动的时候执行一些操作有多种方式。你可以通过实现ApplicationRunner或者CommandLineRunner接口&#xff0c;在Spring Boot应用程序启动后执行特定操作。另外&#xff0c;你也可以使用PostConstruct注解&#xff0c;在Spring Bea…

Dubbo配置上的一些概念

对于dubbo在spring中我们可能看到有如下配置&#xff08;可参考Schema 配置参考手册 | Apache Dubbo&#xff09;&#xff1a; dubbo:application:id: dubbo-account-examplename: dubbo-account-example# 是否启用 Dubbo 的 QoS&#xff08;Quality of Service&#xff09;服…

【Fastadmin】自定义404页面

1.修改config.php // 文件路径&#xff1a;application/config.php// 自定义错误码模板http_exception_template > [// 定义404错误的模板渲染404 > APP_PATH . common/view/404/404.html,], 2.需要把debug关闭才能生效 在.env文件中把debug true&#xff0c;改为…

在springboot项目中自定义404页面

今天点击菜单的时候不小心点开了一个不存在的页面&#xff0c;然后看到浏览器给的一个默认的404页面 后端的程序员都觉得这页面太丑了&#xff0c;那么怎么能自定义404页面呢&#xff1f; 很简单&#xff0c;在我们的springboot的静态资源目录下创建一个error包&#xff0c;然…

UL认证储能电表工商业储能智能计量电表ADL3000-E-B/KC

◉概述 ADL3000-E-B 导轨式多功能电能表&#xff0c;是主要针对电力系统&#xff0c;工矿企业&#xff0c;公用设施的电能统计、管理需求而设计的一款智能仪表&#xff0c;产品具有精度高、体积小、安装方便等优点。集成常见电力参数测量及电能计量及考核管理&#xff0c;提供…

LangChain搭建Agent | 使用initialize_agent

1.create_tool_calling_agent 构建agent&#xff0c;这个方法是过时了吗&#xff1f;官方文档也没更新&#xff0c;官方示例也运行错误 from langchain_core.prompts import ChatPromptTemplate from langchain_core.runnables import ConfigurableField from langchain_core…

ES6中数组新增了哪些扩展?

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;JavaScript篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:ES6中数组新增了哪些扩展&#xff1f; 目录 一、扩展运算符的应用 二、构造函数新…

(2)双指针练习:复写零

复写零 题目链接&#xff1a;1089. 复写零 - 力扣&#xff08;LeetCode&#xff09; 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素。请对输入…

oppo手机怎样录屏?新手必看指南来了

“有人知道oppo手机怎样录屏吗&#xff1f;刚刚换了新款的oppo手机&#xff0c;它的屏幕显示效果和性能都让我感到非常满意&#xff0c;但是在尝试使用录屏功能时遇到了些困难&#xff0c;找了半天都没找到正确的开启方式&#xff0c;有没有哪位oppo手机用户知道如何打开录屏功…

美港通正规炒股市场沪指收跌0.82% 证券板块调整

5月15日电 15日,A股三大指数集体下挫。上证指数跌0.82%,报3119.9点;深证成指跌0.88%,报9583.54点;创业板指跌0.9%,报1838.89点。沪深京三市成交额7651亿元,其中沪深两市7611亿元,较上日缩量635亿元。沪深两市超3800只个股下跌。 美港通证券以其专业的服务和较低的管理费用在市…

后台菜单数据递归展示

后台菜单数据递归展示 效果示例图aslide.vueaslideItem.vuemenu 效果示例图 aslide.vue <script setup>import {ref} from vue;const props defineProps({isCollapse: {type: Boolean,default: false}});import AslideItem from "./aslideItem.vue"const def…

IntelliJ IDEA 配置JDK

IntelliJ IDEA-之配置JDK 我们的开发神器IDEA安装好了之后&#xff0c;在实际开发中&#xff0c;我们如何去配置好JDK的版本呢&#xff1f; 注意&#xff1a;需要保证JDK在已经成功安装的情况下&#xff0c;再进行IDEA的配置 现在就行动&#xff0c;让IntelliJ IDEA成为你征…