# 根据数据库所查数据进行邮件定时发送
#### [项目地址](https://gitee.com/AirOranges/email-crontab):https://gitee.com/AirOranges/email-crontab
#### 功能需求
定期从数据库中获取数据,并将所获取数据以邮件形式发送给需求者。
#### 介绍
定时发送邮件程序,使用多数据库源,可从mysql,oracle 中 读取数据进行发送。
#### 软件架构
使用springboot 2.3.5.RELEASE 作为主要框架
使用quartz 作为定时任务调度框架
使用springboot 整合mail 进行邮件发送
使用easypoi 将数据生成excel
整合mysql ,oracle 驱动 使用阿里数据库连接池
使用velocity 作为velocity代码生成使用模板
使用mybatis 作为持久层查询
#### 安装教程
1. mvn clean
2. mvn package
3. 导入sql ./sql/email-crontab.sql
4. java -jar ./target/email-crontab.jar –spring.profiles.active=pro
#### 使用说明
1. 修改application-pro.yml 文件配置
“`yaml
server:
session-timeout: 28800
# tomcat:
# max-threads: 1000
# min-spare-threads: 30
# 端口修改
port: ${sport:8080}
spring:
# 邮箱配置 使用smtp 协议各个邮箱配置方式可以自行查找
mail:
host: smtp.qq.com
name: 顾明杰
username: 295703009@qq.com
# 客户端密码(非登录密码)
password: XXXXXXXXX
properties:
mail:
smtp:
auth: true # 需要验证登录名和密码
starttls:
enable: true # 需要TLS认证 保证发送邮件安全验证
required: true
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/email-crontabseUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 1qaz2wsx
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# oracle
oracle:
# 从数据源开关/默认关闭
enabled: true
url: jdbc:oracle:thin:@localhost:1521:email-crontab
username: root
password: 1qaz2wsx
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username:
login-password:
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# 任务时间配置
jobs:
sendGasJob:
# 每天 12:00
corn: 0 12 00 * * /p>
“`
2. 修改config.json 配置
“`json
[
{
“sql”: [
{
“sqlName”: “SELECT * FROM email_crontab_test”,
“sqlContent”: “第一封邮件测试主数据库1”
},
{
“sqlName”: “SELECT * FROM email_crontab_test_copy”,
“sqlContent”: “第一封邮件测试主数据库2”
}
],
“subject”: “第一封邮件测试主数据库”,
“content”: “第一封邮件测试主数据库”,
“useDataSource”: “master”,
“toList”: [
{
“toName”: “顾明杰qq”,
“toMail”: “1033128175@qq.com”
},
{
“toName”: “顾明杰gmail”,
“toMail”: “gumingjie.qi@gmail.com”
}
],
“ccList”: [
{
“toName”: “顾明杰qq”,
“toMail”: “1033128175@qq.com”
},
{
“toName”: “顾明杰gmail”,
“toMail”: “gumingjie.qi@gmail.com”
}
]
},
{
“sql”: [
{
“sqlName”: “select * from user_tables”,
“sqlContent”: “第二封邮件测试从数据库”
}
],
“subject”: “第二封邮件测试从数据库”,
“content”: “第二封邮件测试从数据库”,
“useDataSource”: “oracle”,
“toList”: [
{
“toName”: “顾明杰qq”,
“toMail”: “1033128175@qq.com”
},
{
“toName”: “顾明杰gmail”,
“toMail”: “gumingjie.qi@gmail.com”
}
],
“ccList”: [
{
“toName”: “顾明杰qq”,
“toMail”: “1033128175@qq.com”
},
{
“toName”: “顾明杰gmail”,
“toMail”: “gumingjie.qi@gmail.com”
}
]
}
]
“`
3. 修改日志文件配置 logback-spring.xml
“`xml
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} – %msg%n
applog/%d{yyyy-MM-dd}/%d{yyyy-MM-dd}.log
30
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} – %msg%n
10MB
“`
一键复制
编辑
Web IDE
原始数据
按行查看
历史
文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成表31276 人正在系统学习中 相关资源:软件标书范本(技术部分)_软件技术标书-项目管理文档类资源-CSDN文库
来源:徐子贡
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!