oracle定时推送消息,根据数据库所查数据进行邮件定时发送.md

# 根据数据库所查数据进行邮件定时发送

#### [项目地址](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进行处理,非常感谢!

上一篇 2021年3月2日
下一篇 2021年3月2日

相关推荐