SpringBoot开发案例之邮件多实例发送
时间:2022-06-08
本文章向大家介绍SpringBoot开发案例之邮件多实例发送,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前言
最近在做邮件发送的服务,正常来说 SpringBoot 整合mail还是很方便的,然而来了新的需求:A请求使用邮箱C发送,B请求使用邮箱D发送,也就是说我们需要配置两套发送服务。
单实例
首先我们来看下单个服务的配置:
spring.mail.host=smtp.mxhichina.com
spring.mail.username=admin@52itstyle.com
spring.mail.password=123456
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
其他的不用管,我们只需要在用到的时候注入以下即可:
@Autowired
private JavaMailSender mailSender;//执行者
如果大家对如何加载配置以及初始化感兴趣,可以了解下 spring-boot-autoconfigure 的原理。
多实例
由于 mail 并没有像数据库那样提供多数据源,这里只能我们自己手动获取了:
/**
* 创建发送器
*/
public class MailUtil {
public static JavaMailSenderImpl createMailSender(){
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost("smtp.mxhichina.com");
sender.setPort(25);
sender.setUsername("admin@52itstyle.com");
sender.setPassword("123456");
sender.setDefaultEncoding("Utf-8");
Properties p = new Properties();
p.setProperty("mail.smtp.timeout",1000+"");
p.setProperty("mail.smtp.auth","true");
sender.setJavaMailProperties(p);
return sender;
}
}
这里,顺便说一个小功能,在发送邮件的时候,如何自定义显示发件人名称:
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom("345849402@qq.com","爪哇笔记");
最后我们在使用的时候,只需要根据不同的请求使用不同的 sender 就可以了。
项目源码
码云:https://gitee.com/52itstyle/spring-boot-mail
- asp.net web api 下载之断点续传
- apache2.4.x三种MPM介绍
- 没有自己的服务器如何学习生物数据分析(上篇)
- 【直播】我的基因组57:最简陋的祖源分析
- asp.net web api 使用Odata
- TensorFlow从0到1丨第十六篇 L2正则化对抗“过拟合”
- TensorFlow从0到1 | 第十七章 Step By Step上手TensorBoard
- C#要点
- MySQL索引背后的数据结构及算法原理
- 生物信息Python从入门到精通
- Entity Framework——建模建库
- asp.net web api 构建api帮助文档
- TensorFlow从0到1 | 第十八章: 升级手记:TensorFlow 1.3.0
- 设计一个可扩展的用户登录系统
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Power Designer逆向工程导入Oracle表,转为模型加注释
- CentOS6.5安装mysql5.1.73
- Spring Boot Maven Plugin打包异常及三种解决方法:Unable to find main class
- Spring Boot 直接用jar运行项目
- centos6.8 mysql5.6.34 root密码重置
- MySql 5.7安装(随机密码,修改默认密码)两个坑
- TiDB 源码阅读系列文章(十二)统计信息(上)
- Centos后台运行jar
- js算法初窥02(排序算法02-归并、快速以及堆排序)
- Python 中的 if __name__ == '__main__' 该如何理解
- TensorFlow 常用函数汇总
- 批量实现多台服务器之间ssh无密码登录的相互信任关系
- 4-学习GPRS_Air202(串口)
- 使用box-shadow进行画图(性能优化终结者)
- 自动化工具-ansible服务部署与使用