Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
etl-ruoshui-bigdata-server
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
etl-ruoshui
etl-ruoshui-bigdata-server
Commits
e47223ac
提交
e47223ac
authored
1月 21, 2026
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(email): 更新邮件服务配置以支持飞书SMTP
refactor(glue): 移除未使用的GlueTypeEnum类
上级
0dcaf7ce
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
43 行增加
和
84 行删除
+43
-84
GlueTypeEnum.java
...c/main/java/com/ruoshui/core/enums/glue/GlueTypeEnum.java
+0
-56
ScriptJobHandler.java
...com/ruoshui/core/enums/handler/impl/ScriptJobHandler.java
+1
-1
EmailUtil.java
...rc/main/java/com/ruoshui/bigdata/core/util/EmailUtil.java
+42
-27
没有找到文件。
ruoshui-core/src/main/java/com/ruoshui/core/enums/glue/GlueTypeEnum.java
deleted
100644 → 0
浏览文件 @
0dcaf7ce
package
com
.
ruoshui
.
core
.
enums
.
glue
;
/**
* Created by xuxueli on 17/4/26.
*/
public
enum
GlueTypeEnum
{
seatunnel
(
"seatunnel"
,
false
,
null
,
null
),
datax
(
"data"
,
false
,
null
,
null
),
flinkx
(
"flinkx"
,
false
,
null
,
null
),
BEAN
(
"BEAN"
,
false
,
null
,
null
),
GLUE_GROOVY
(
"GLUE(Java)"
,
false
,
null
,
null
),
GLUE_SHELL
(
"GLUE(Shell)"
,
true
,
"bash"
,
".sh"
),
// GLUE_PYTHON("GLUE(Python)", true, "python", ".py"),
GLUE_PYTHON
(
"GLUE(Python)"
,
true
,
"python3"
,
".py"
),
GLUE_PHP
(
"GLUE(PHP)"
,
true
,
"php"
,
".php"
),
GLUE_NODEJS
(
"GLUE(Nodejs)"
,
true
,
"node"
,
".js"
),
GLUE_POWERSHELL
(
"GLUE(PowerShell)"
,
true
,
"powershell"
,
".ps1"
);
private
String
desc
;
private
boolean
isScript
;
private
String
cmd
;
private
String
suffix
;
private
GlueTypeEnum
(
String
desc
,
boolean
isScript
,
String
cmd
,
String
suffix
)
{
this
.
desc
=
desc
;
this
.
isScript
=
isScript
;
this
.
cmd
=
cmd
;
this
.
suffix
=
suffix
;
}
public
String
getDesc
()
{
return
desc
;
}
public
boolean
isScript
()
{
return
isScript
;
}
public
String
getCmd
()
{
return
cmd
;
}
public
String
getSuffix
()
{
return
suffix
;
}
public
static
GlueTypeEnum
match
(
String
name
){
for
(
GlueTypeEnum
item:
GlueTypeEnum
.
values
())
{
if
(
item
.
name
().
equals
(
name
))
{
return
item
;
}
}
return
null
;
}
}
ruoshui-core/src/main/java/com/ruoshui/core/enums/handler/impl/ScriptJobHandler.java
浏览文件 @
e47223ac
...
...
@@ -2,12 +2,12 @@ package com.ruoshui.core.enums.handler.impl;
import
com.ruoshui.core.enums.biz.model.ReturnT
;
import
com.ruoshui.core.enums.biz.model.TriggerParam
;
import
com.ruoshui.core.enums.glue.GlueTypeEnum
;
import
com.ruoshui.core.enums.handler.IJobHandler
;
import
com.ruoshui.core.enums.log.JobFileAppender
;
import
com.ruoshui.core.enums.log.JobLogger
;
import
com.ruoshui.core.enums.util.ScriptUtil
;
import
com.ruoshui.core.enums.util.ShardingUtil
;
import
com.ruoshui.core.glue.GlueTypeEnum
;
import
java.io.File
;
...
...
ruoshui-system/src/main/java/com/ruoshui/bigdata/core/util/EmailUtil.java
浏览文件 @
e47223ac
package
com
.
ruoshui
.
bigdata
.
core
.
util
;
import
com.sun.mail.util.MailSSLSocketFactory
;
import
javax.mail.*
;
import
javax.mail.internet.InternetAddress
;
import
javax.mail.internet.MimeMessage
;
import
javax.net.ssl.X509TrustManager
;
import
javax.net.ssl.SSLSocketFactory
;
import
javax.net.ssl.TrustManager
;
import
java.security.cert.X509Certificate
;
import
java.util.Properties
;
public
class
EmailUtil
{
public
static
void
send
(
String
emailUserName
,
String
emailPassword
,
String
emailAuthorization
,
String
SJemailUserName
,
String
title
,
String
msg
)
throws
Exception
{
Properties
properties
=
new
Properties
();
//设置QQ邮件服务器
properties
.
setProperty
(
"mail.host"
,
"smtp.
qq.com
"
);
properties
.
setProperty
(
"mail.host"
,
"smtp.
feishu.cn
"
);
//邮件发送协议
properties
.
setProperty
(
"mail.transport.protocol"
,
"smtp"
);
//需要验证用户名密码
properties
.
setProperty
(
"mail.smtp.host"
,
"smtp.feishu.cn"
);
properties
.
setProperty
(
"mail.smtp.port"
,
"465"
);
properties
.
setProperty
(
"mail.smtp.auth"
,
"true"
);
//还要设置SSL加密,加上以下代码即可
MailSSLSocketFactory
mailSSLSocketFactory
=
new
MailSSLSocketFactory
();
mailSSLSocketFactory
.
setTrustAllHosts
(
true
);
properties
.
put
(
"mail.smtp.ssl.enable"
,
"true"
);
properties
.
put
(
"mail.smtp.ssl.socketFactory"
,
mailSSLSocketFactory
);
//使用JavaMail发送邮件的5个步骤
//1、创建定义整个应用程序所需环境信息的 Session 对象
Session
session
=
Session
.
getDefaultInstance
(
properties
,
new
Authenticator
()
{
properties
.
setProperty
(
"mail.smtp.ssl.enable"
,
"true"
);
properties
.
setProperty
(
"mail.smtp.ssl.trust"
,
"*"
);
properties
.
setProperty
(
"mail.smtp.ssl.checkserveridentity"
,
"false"
);
properties
.
setProperty
(
"mail.smtp.starttls.enable"
,
"true"
);
properties
.
setProperty
(
"mail.smtp.starttls.required"
,
"true"
);
// 核心:指定SSL协议版本(关键解决No appropriate protocol问题)
// 支持的协议:TLSv1.2(推荐)、TLSv1.1、TLSv1(根据邮件服务器调整)
javax
.
net
.
ssl
.
SSLContext
sslContext
=
javax
.
net
.
ssl
.
SSLContext
.
getInstance
(
"TLSv1.2"
);
sslContext
.
init
(
null
,
new
TrustManager
[]{
new
X509TrustManager
()
{
// 信任所有证书(仅测试/内网环境用,生产环境需配置可信证书)
@Override
public
PasswordAuthentication
getPasswordAuthentication
()
{
//发件人用户名,授权码
return
new
PasswordAuthentication
(
emailUserName
,
emailAuthorization
);
public
void
checkClientTrusted
(
X509Certificate
[]
chain
,
String
authType
)
{}
@Override
public
void
checkServerTrusted
(
X509Certificate
[]
chain
,
String
authType
)
{}
@Override
public
X509Certificate
[]
getAcceptedIssuers
()
{
return
new
X509Certificate
[
0
];
}
}},
null
);
SSLSocketFactory
sslSocketFactory
=
sslContext
.
getSocketFactory
();
properties
.
put
(
"mail.smtp.ssl.socketFactory"
,
sslSocketFactory
);
// 强制使用指定的协议版本
properties
.
put
(
"mail.smtp.ssl.protocols"
,
"TLSv1.2"
);
// 替换为TLSv1.1/TLSv1(如果服务器仅支持)
// 2. 创建会话
Session
session
=
Session
.
getInstance
(
properties
,
new
Authenticator
()
{
@Override
protected
PasswordAuthentication
getPasswordAuthentication
()
{
return
new
PasswordAuthentication
(
emailUserName
,
emailAuthorization
);
}
});
//开启Session的debug模式,这样就可以查看程序发送Email的运行状态
session
.
setDebug
(
true
);
//2、通过session得到transport对象
Transport
transport
=
session
.
getTransport
();
//3、使用用户名和授权码连上邮件服务器
transport
.
connect
(
"smtp.qq.com"
,
emailUserName
,
emailPassword
);
//4、创建邮件:写邮件
//注意需要传递Session
Transport
transport
=
session
.
getTransport
(
"smtp"
);
transport
.
connect
(
"smtp.feishu.cn"
,
465
,
emailUserName
,
emailAuthorization
);
MimeMessage
message
=
new
MimeMessage
(
session
);
//指明邮件的发件人
message
.
setFrom
(
new
InternetAddress
(
emailUserName
));
//指明邮件的收件人,现在发件人和收件人是一样的,就是自己给自己发
message
.
setRecipient
(
Message
.
RecipientType
.
TO
,
new
InternetAddress
(
SJemailUserName
));
message
.
setSubject
(
title
);
message
.
setContent
(
msg
,
"text/html;charset=UTF-8"
);
//5、发送邮件
transport
.
sendMessage
(
message
,
message
.
getAllRecipients
());
//6、关闭连接
transport
.
sendMessage
(
message
,
message
.
getAllRecipients
());
transport
.
close
();
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论