Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
change4weixin
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shenjinzhu
change4weixin
Commits
97845ba8
Commit
97845ba8
authored
May 02, 2018
by
admin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加文件上传更新
parent
9cab1b25
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
191 additions
and
125 deletions
+191
-125
src/main/java/com/zhiwei/finance/ESUtil.java
+12
-2
src/main/java/com/zhiwei/finance/PushFinanceByTime.java
+38
-15
src/main/java/com/zhiwei/finance/PushFinanceByTimeLess.java
+15
-2
src/main/java/com/zhiwei/service/Services.java
+8
-5
src/main/java/com/zhiwei/servlet/FianceController.java
+34
-14
src/main/java/com/zhiwei/util/MongoConnection.java
+8
-0
src/main/java/com/zw/entity/ExcelsUrl.java
+9
-1
src/main/java/sendmail/SendMailUtil.java
+54
-79
src/main/resources/datasource.properties
+3
-1
src/main/webapp/showfinance.html
+4
-2
src/main/webapp/upExcelWithFinance.html
+3
-3
target/classes/datasource.properties
+3
-1
No files found.
src/main/java/com/zhiwei/finance/ESUtil.java
View file @
97845ba8
...
...
@@ -9,6 +9,7 @@ import java.util.List;
import
java.util.Map
;
import
java.util.TimeZone
;
import
org.bson.Document
;
import
org.elasticsearch.action.search.SearchRequestBuilder
;
import
org.elasticsearch.action.search.SearchResponse
;
import
org.elasticsearch.client.Client
;
...
...
@@ -22,6 +23,7 @@ import org.slf4j.LoggerFactory;
import
org.springframework.stereotype.Component
;
import
com.zhiwei.util.Config
;
import
com.zhiwei.util.MongoConnection
;
import
com.zhiwei.util.ReadExcel
;
import
com.zw.entity.NewsResult
;
...
...
@@ -36,6 +38,7 @@ public class ESUtil {
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
ESUtil
.
class
);
private
static
String
indexName
;
private
static
String
type
;
private
static
MongoConnection
con
=
new
MongoConnection
();
static
{
indexName
=
Config
.
getVal
(
"indexName"
);
...
...
@@ -130,8 +133,15 @@ public class ESUtil {
try
{
log
.
info
(
"推送检索开始"
);
Client
esClient
=
ESClient
.
getInstance
();
List
<
String
>
keys
=
new
ReadExcel
()
.
getExcel
(
ESUtil
.
class
.
getClassLoader
().
getResource
(
"pushFiles/pushkey.xls"
).
getPath
());
List
<
String
>
keys
=
new
ArrayList
<
String
>();
String
path
=
ESUtil
.
class
.
getClassLoader
().
getResource
(
"pushFiles/pushkey.xls"
).
getPath
();
Document
doc
=
con
.
find
(
"financePush"
,
"excelPath"
,
new
Document
().
append
(
"name"
,
"key"
));
if
(
doc
!=
null
)
{
if
(
doc
.
getString
(
"url"
)
!=
null
)
{
path
=
doc
.
getString
(
"url"
);
}
}
keys
=
new
ReadExcel
().
getExcel
(
path
);
for
(
String
key
:
keys
)
{
// 搜索数据
SearchRequestBuilder
srb
=
esClient
.
prepareSearch
(
indexName
).
setTypes
(
type
);
...
...
src/main/java/com/zhiwei/finance/PushFinanceByTime.java
View file @
97845ba8
package
com
.
zhiwei
.
finance
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.bson.Document
;
import
org.springframework.stereotype.Component
;
import
com.zhiwei.orm.BeanFactory
;
...
...
@@ -17,26 +19,28 @@ import com.zhiwei.util.StringUtil;
import
com.zw.entity.NewsResult
;
import
sendmail.SendMailUtil
;
@Component
public
class
PushFinanceByTime
extends
Thread
{
private
static
final
Log
log
=
LogFactory
.
getLog
(
PushFinanceByTime
.
class
);
private
static
final
MongoConnection
con
=
new
MongoConnection
();
private
static
final
MongoConnection
con
=
new
MongoConnection
();
public
PushFinanceByTime
()
{
this
.
start
();
}
public
void
run
()
{
Services
service
=
BeanFactory
.
getBean
(
Services
.
class
);
if
(!
StringUtil
.
isEmpty
(
service
.
getPath
(
"longSource"
)))
{
}
List
<
String
>
sources
=
new
ReadExcel
()
.
getExcel
(
ESUtil
.
class
.
getClassLoader
().
getResource
(
"pushFiles/pushSource.xls"
).
getPath
());
while
(
true
)
{
List
<
String
>
sources
=
new
ArrayList
<
String
>();
String
path
=
PushFinanceByTime
.
class
.
getClassLoader
().
getResource
(
"pushFiles/pushSource.xls"
).
getPath
();
Document
doc
=
con
.
find
(
"financePush"
,
"excelPath"
,
new
Document
().
append
(
"name"
,
"longSource"
));
if
(
doc
!=
null
)
{
if
(
doc
.
getString
(
"url"
)
!=
null
)
{
path
=
doc
.
getString
(
"url"
);
}
}
log
.
info
(
"推送检测"
);
sources
=
new
ReadExcel
().
getExcel
(
path
);
Calendar
cal
=
Calendar
.
getInstance
();
try
{
if
(
cal
.
get
(
Calendar
.
HOUR_OF_DAY
)
==
8
&&
cal
.
get
(
Calendar
.
MINUTE
)
>=
30
)
{
...
...
@@ -66,6 +70,7 @@ public class PushFinanceByTime extends Thread {
+
(
int
)
(
Math
.
random
()
*
5000
)
+
"sends.xls"
;
cal
.
add
(
Calendar
.
HOUR_OF_DAY
,
5
);
sendsEmail
(
cal
,
list
,
url
);
sleep
(
1000
*
60
*
60
);
}
}
...
...
@@ -73,15 +78,33 @@ public class PushFinanceByTime extends Thread {
}
catch
(
Exception
e
)
{
log
.
error
(
"推送错误信息"
,
e
);
}
try
{
sleep
(
1000
*
10
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
}
private
void
sendsEmail
(
Calendar
cal
,
List
<
NewsResult
>
list
,
String
url
)
throws
Exception
{
new
ExcelUtil
().
pushDataWithFinance
(
list
,
cal
.
getTime
(),
url
);
SendMailUtil
.
sendMessage
(
"949131080@qq.com"
,
url
,
"金融"
);
SendMailUtil
.
sendMessage
(
"yuhualong@zhiweidata.com"
,
url
,
"金融"
);
SendMailUtil
.
sendMessage
(
"ligaodie@zhiweidata.com"
,
url
,
"金融"
);
ExcelUtil
.
delete
(
url
);
private
void
sendsEmail
(
Calendar
cal
,
List
<
NewsResult
>
list
,
String
url
)
{
try
{
new
ExcelUtil
().
pushDataWithFinance
(
list
,
cal
.
getTime
(),
url
);
SendMailUtil
.
sendMessage
(
"949131080@qq.com"
,
url
,
"金融"
);
SendMailUtil
.
sendMessage
(
"yuhualong@zhiweidata.com"
,
url
,
"金融"
);
SendMailUtil
.
sendMessage
(
"ligaodie@zhiweidata.com"
,
url
,
"金融"
);
ExcelUtil
.
delete
(
url
);
}
catch
(
Exception
e
)
{
log
.
error
(
"一号邮箱发送失败,尝试二号邮箱{}"
,
e
);
try
{
new
ExcelUtil
().
pushDataWithFinance
(
list
,
cal
.
getTime
(),
url
);
SendMailUtil
.
sendMessage2
(
"949131080@qq.com"
,
url
,
"金融"
);
SendMailUtil
.
sendMessage2
(
"yuhualong@zhiweidata.com"
,
url
,
"金融"
);
SendMailUtil
.
sendMessage2
(
"ligaodie@zhiweidata.com"
,
url
,
"金融"
);
ExcelUtil
.
delete
(
url
);
}
catch
(
Exception
e2
)
{
log
.
error
(
"二号邮箱发送错误{}"
,
e
);
}
}
}
}
src/main/java/com/zhiwei/finance/PushFinanceByTimeLess.java
View file @
97845ba8
package
com
.
zhiwei
.
finance
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.bson.Document
;
import
org.springframework.stereotype.Component
;
import
com.zhiwei.util.ExcelUtil
;
import
com.zhiwei.util.MongoConnection
;
import
com.zhiwei.util.ReadExcel
;
import
com.zw.entity.NewsResult
;
...
...
@@ -17,15 +20,25 @@ import sendmail.SendMailUtil;
@Component
public
class
PushFinanceByTimeLess
extends
Thread
{
private
static
final
Log
log
=
LogFactory
.
getLog
(
PushFinanceByTimeLess
.
class
);
private
static
final
MongoConnection
con
=
new
MongoConnection
();
public
PushFinanceByTimeLess
()
{
this
.
start
();
}
public
void
run
()
{
List
<
String
>
sources
=
new
ReadExcel
()
.
getExcel
(
ESUtil
.
class
.
getClassLoader
().
getResource
(
"pushFiles/pushFinanceless.xls"
).
getPath
());
while
(
true
)
{
List
<
String
>
sources
=
new
ArrayList
<
String
>();
String
path
=
PushFinanceByTime
.
class
.
getClassLoader
().
getResource
(
"pushFiles/pushFinanceless.xls"
).
getPath
();
Document
doc
=
con
.
find
(
"financePush"
,
"excelPath"
,
new
Document
().
append
(
"name"
,
"lessSource"
));
if
(
doc
!=
null
)
{
if
(
doc
.
getString
(
"url"
)
!=
null
)
{
path
=
doc
.
getString
(
"url"
);
}
}
log
.
info
(
"推送检测"
);
System
.
out
.
println
(
path
);
sources
=
new
ReadExcel
().
getExcel
(
path
);
Calendar
cal
=
Calendar
.
getInstance
();
try
{
if
(
cal
.
get
(
Calendar
.
HOUR_OF_DAY
)
==
8
&&
cal
.
get
(
Calendar
.
MINUTE
)
>=
30
)
{
...
...
src/main/java/com/zhiwei/service/Services.java
View file @
97845ba8
...
...
@@ -19,13 +19,14 @@ public class Services {
List
<
ExcelsUrl
>
result
=
new
ArrayList
<>();
for
(
Document
doc
:
list
)
{
ExcelsUrl
eUrl
=
new
ExcelsUrl
();
eUrl
.
setType
(
doc
.
getString
(
"type"
));
eUrl
.
setName
(
doc
.
getString
(
"name"
));
eUrl
.
setUrl
(
doc
.
getString
(
"url"
));
switch
(
doc
.
getString
(
"name"
))
{
case
"key"
:
eUrl
.
setGo
(
"http://192.168.0.245:8080/change4weixin/finance/upExcel"
);;
case
"longSource"
:
eUrl
.
setGo
(
"http://192.168.0.245:8080/change4weixin/finance/upExcel"
);
case
"lessSource"
:
eUrl
.
setGo
(
"http://192.168.0.245:8080/change4weixin/finance/upExcel"
);
}
//
switch (doc.getString("name")) {
//
case "key":eUrl.setGo("http://192.168.0.245:8080/change4weixin/finance/upExcel");;
//
case "longSource":eUrl.setGo("http://192.168.0.245:8080/change4weixin/finance/upExcel");
//
case "lessSource":eUrl.setGo("http://192.168.0.245:8080/change4weixin/finance/upExcel");
//
}
result
.
add
(
eUrl
);
}
return
result
;
...
...
@@ -33,8 +34,10 @@ public class Services {
public
void
insert
(
ExcelsUrl
eUrl
)
{
Document
doc
=
new
Document
();
System
.
out
.
println
(
eUrl
);
doc
.
append
(
"name"
,
eUrl
.
getName
());
doc
.
append
(
"url"
,
eUrl
.
getUrl
());
doc
.
append
(
"type"
,
eUrl
.
getType
());
con
.
insertDb
(
"financePush"
,
"excelPath"
,
doc
);
}
...
...
src/main/java/com/zhiwei/servlet/FianceController.java
View file @
97845ba8
package
com
.
zhiwei
.
servlet
;
import
java.io.File
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
...
...
@@ -16,6 +17,7 @@ import com.alibaba.fastjson.JSON;
import
com.zhiwei.service.Services
;
import
com.zhiwei.util.Config
;
import
com.zhiwei.util.ExcelUtil
;
import
com.zhiwei.util.ReadExcel
;
import
com.zhiwei.util.StringUtil
;
import
com.zw.entity.ExcelsUrl
;
...
...
@@ -34,24 +36,39 @@ public class FianceController {
return
"showfinance"
;
}
public
void
fileSave
(
MultipartFile
file
,
String
path
)
{
File
targetFile
=
new
File
(
path
);
if
(!
targetFile
.
exists
())
{
targetFile
.
mkdirs
();
}
// 保存
try
{
file
.
transferTo
(
targetFile
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
@RequestMapping
(
value
=
"/upFinanceKey"
)
public
String
upFinanceKey
(
MultipartFile
file
)
{
String
fileName
=
file
.
getOriginalFilename
();
if
(
fileName
.
endsWith
(
".xls"
)
||
fileName
.
endsWith
(
".xlsx"
))
{
// 是否是excel结尾的
String
path
=
Config
.
getVal
(
"timefileUrl"
)
+
"/"
+
sdf
.
format
(
new
Date
())
+
fileName
;
log
.
info
(
path
);
String
beforeUrl
=
service
.
getPath
(
"key"
);
if
(!
StringUtil
.
isEmpty
(
beforeUrl
))
{
String
beforeUrl
=
service
.
getPath
(
"key"
);
if
(!
StringUtil
.
isEmpty
(
beforeUrl
))
{
ExcelUtil
.
delete
(
beforeUrl
);
}
fileSave
(
file
,
path
);
ExcelsUrl
eUrl
=
new
ExcelsUrl
();
eUrl
.
setType
(
"关键词"
);
eUrl
.
setName
(
"key"
);
eUrl
.
setUrl
(
path
);
service
.
insert
(
eUrl
);
}
else
{
return
""
;
return
"
excelError
"
;
}
return
"
upExcelWithF
inance"
;
return
"
showf
inance"
;
}
@RequestMapping
(
value
=
"/upFinanceLong"
)
...
...
@@ -60,18 +77,20 @@ public class FianceController {
if
(
fileName
.
endsWith
(
".xls"
)
||
fileName
.
endsWith
(
".xlsx"
))
{
// 是否是excel结尾的
String
path
=
Config
.
getVal
(
"timefileUrl"
)
+
"/"
+
sdf
.
format
(
new
Date
())
+
fileName
;
log
.
info
(
path
);
String
beforeUrl
=
service
.
getPath
(
"longSource"
);
if
(!
StringUtil
.
isEmpty
(
beforeUrl
))
{
String
beforeUrl
=
service
.
getPath
(
"longSource"
);
if
(!
StringUtil
.
isEmpty
(
beforeUrl
))
{
ExcelUtil
.
delete
(
beforeUrl
);
}
fileSave
(
file
,
path
);
ExcelsUrl
eUrl
=
new
ExcelsUrl
();
eUrl
.
setType
(
"来源多的文件"
);
eUrl
.
setName
(
"longSource"
);
eUrl
.
setUrl
(
path
);
service
.
insert
(
eUrl
);
}
else
{
return
""
;
return
"
excelError
"
;
}
return
"
upExcelWithF
inance"
;
return
"
showf
inance"
;
}
@RequestMapping
(
value
=
"/upFinanceLess"
)
...
...
@@ -80,25 +99,26 @@ public class FianceController {
if
(
fileName
.
endsWith
(
".xls"
)
||
fileName
.
endsWith
(
".xlsx"
))
{
// 是否是excel结尾的
String
path
=
Config
.
getVal
(
"timefileUrl"
)
+
"/"
+
sdf
.
format
(
new
Date
())
+
fileName
;
log
.
info
(
path
);
String
beforeUrl
=
service
.
getPath
(
"lessSource"
);
if
(!
StringUtil
.
isEmpty
(
beforeUrl
))
{
String
beforeUrl
=
service
.
getPath
(
"lessSource"
);
if
(!
StringUtil
.
isEmpty
(
beforeUrl
))
{
ExcelUtil
.
delete
(
beforeUrl
);
}
fileSave
(
file
,
path
);
ExcelsUrl
eUrl
=
new
ExcelsUrl
();
eUrl
.
setType
(
"来源较少的文件"
);
eUrl
.
setName
(
"lessSource"
);
eUrl
.
setUrl
(
path
);
service
.
insert
(
eUrl
);
}
else
{
return
"excelError"
;
}
return
"
upExcelWithFinance
"
;
return
"
redirect:upExcel
"
;
}
@RequestMapping
(
value
=
"/getAll
"
)
@RequestMapping
(
value
=
"/getAll"
,
produces
=
"application/json;charset=utf-8
"
)
@ResponseBody
public
String
getAll
()
{
return
JSON
.
toJSONString
(
service
.
findAll
());
}
}
src/main/java/com/zhiwei/util/MongoConnection.java
View file @
97845ba8
...
...
@@ -34,6 +34,7 @@ public class MongoConnection {
MongoCollection
<
Document
>
col
=
db
.
getCollection
(
collection
);
Document
filter
=
new
Document
();
filter
.
append
(
"name"
,
document
.
get
(
"name"
));
filter
.
append
(
"type"
,
document
.
get
(
"type"
));
Document
update
=
new
Document
();
update
.
append
(
"$set"
,
new
Document
(
"url"
,
document
.
get
(
"url"
)));
col
.
updateOne
(
filter
,
update
,
new
UpdateOptions
().
upsert
(
true
));
...
...
@@ -57,6 +58,13 @@ public class MongoConnection {
cur
.
close
();
return
list
;
}
public
Document
find
(
String
dbName
,
String
collection
,
Document
doc
)
{
MongoDatabase
db
=
getdb
(
dbName
);
MongoCollection
<
Document
>
col
=
db
.
getCollection
(
collection
);
Document
fid
=
col
.
find
(
doc
).
first
();
return
fid
;
}
/**
* 条件查询
* @param dbName
...
...
src/main/java/com/zw/entity/ExcelsUrl.java
View file @
97845ba8
...
...
@@ -3,6 +3,13 @@ package com.zw.entity;
public
class
ExcelsUrl
{
private
String
url
;
private
String
type
;
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
private
String
name
;
private
String
go
;
public
String
getGo
()
{
...
...
@@ -25,6 +32,7 @@ public class ExcelsUrl {
}
@Override
public
String
toString
()
{
return
"ExcelsUrl [url="
+
url
+
",
name="
+
name
+
"]"
;
return
"ExcelsUrl [url="
+
url
+
",
type="
+
type
+
", name="
+
name
+
", go="
+
go
+
"]"
;
}
}
src/main/java/sendmail/SendMailUtil.java
View file @
97845ba8
...
...
@@ -21,8 +21,6 @@ import javax.mail.internet.MimeMultipart;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
/**
* 閭欢鍙戯拷?锟藉伐鍏风被
*
...
...
@@ -30,16 +28,17 @@ import org.apache.commons.logging.LogFactory;
*/
public
class
SendMailUtil
{
private
final
static
Log
log
=
LogFactory
.
getLog
(
SendMailUtil
.
class
);
private
final
static
Log
log
=
LogFactory
.
getLog
(
SendMailUtil
.
class
);
// 发送邮件的邮箱号(若有授权码则密码输入授权码)
// public static String myEmailAccount
= "ccxe4zhishu@126.com";
// public static String myEmailPassword
= "1q2w3e4r5t";
public
static
String
myEmailAccount2
=
"ccxe4zhishu@126.com"
;
public
static
String
myEmailPassword2
=
"1q2w3e4r5t"
;
public
static
String
myEmailAccount
=
"ccxerisk@sina.com"
;
public
static
String
myEmailPassword
=
"1q2w3e4r"
;
// 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com
// 网易163邮箱的 SMTP 服务器地址为: smtp.163.com
public
static
String
myEmailSMTPHost
=
"smtp.sina.com"
;
public
static
String
myEmailSMTPHost2
=
"smtp.126.com"
;
/**
*
...
...
@@ -47,9 +46,10 @@ public class SendMailUtil {
* 接收者的邮箱号
* @param url
* 本地的附件地址
* @throws Exception
*/
public
static
void
sendMessage
(
String
mail
,
String
url
,
String
str
)
{
log
.
info
(
mail
+
","
+
url
+
","
+
str
);
public
static
void
sendMessage
(
String
mail
,
String
url
,
String
str
)
throws
Exception
{
log
.
info
(
mail
+
","
+
url
+
","
+
str
);
// 创建参数配置, 用于连接邮件服务器的参数配置
Properties
props
=
new
Properties
();
// 使用的协议(JavaMail规范要求)
...
...
@@ -59,50 +59,44 @@ public class SendMailUtil {
// 需要请求认证
props
.
setProperty
(
"mail.smtp.auth"
,
"true"
);
final
String
smtpPort
=
"465"
;
props
.
setProperty
(
"mail.smtp.port"
,
smtpPort
);
props
.
setProperty
(
"mail.smtp.socketFactory.class"
,
"javax.net.ssl.SSLSocketFactory"
);
props
.
setProperty
(
"mail.smtp.socketFactory.fallback"
,
"false"
);
props
.
setProperty
(
"mail.smtp.socketFactory.port"
,
smtpPort
);
// PopupAuthenticator popAuthenticator=new PopupAuthenticator();
// PasswordAuthentication pop = popAuthenticator.performCheck("wanghongshuai@ccxe.com.cn","tt67z890zh");
// Session mysession = Session.getInstance(props, popAuthenticator);
//
// PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启),
// 如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误,
/*
* // SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接, //
* 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助, // QQ邮箱的SMTP(SLL)端口为465或587,
* 其他邮箱自行去查看) final String smtpPort = "465";
* props.setProperty("mail.smtp.port", smtpPort);
* props.setProperty("mail.smtp.socketFactory.class",
* "javax.net.ssl.SSLSocketFactory");
* props.setProperty("mail.smtp.socketFactory.fallback", "false");
* props.setProperty("mail.smtp.socketFactory.port", smtpPort);
*/
// 根据配置创建会话对象, 用于和邮件服务器交互
props
.
setProperty
(
"mail.smtp.port"
,
smtpPort
);
props
.
setProperty
(
"mail.smtp.socketFactory.class"
,
"javax.net.ssl.SSLSocketFactory"
);
props
.
setProperty
(
"mail.smtp.socketFactory.fallback"
,
"false"
);
props
.
setProperty
(
"mail.smtp.socketFactory.port"
,
smtpPort
);
Session
session
=
Session
.
getDefaultInstance
(
props
);
session
.
setDebug
(
false
);
// 设置为debug模式, 可以查看详细的发送 log
// 创建邮件
MimeMessage
message
;
try
{
message
=
createMimeMessage
(
session
,
myEmailAccount
,
mail
,
url
,
str
);
// 根据 Session 获取邮件传输对象
Transport
transport
=
session
.
getTransport
();
/*
* 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错 PS_02:
* 连接失败的原因通常为以下几点, 仔细检查代码: (1) 邮箱没有开启 SMTP 服务; (2) 邮箱密码错误,
* 例如某些邮箱开启了独立密码; (3) 邮箱服务器要求必须要使用 SSL 安全连接; (4) 请求过于频繁或其他原因,
* 被邮件服务器拒绝服务; (5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。
*/
transport
.
connect
(
myEmailAccount
,
myEmailPassword
);
// 发送邮件
transport
.
sendMessage
(
message
,
message
.
getAllRecipients
());
// 关闭连接
transport
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
message
=
createMimeMessage
(
session
,
myEmailAccount
,
mail
,
url
,
str
);
Transport
transport
=
session
.
getTransport
();
transport
.
connect
(
myEmailAccount
,
myEmailPassword
);
transport
.
sendMessage
(
message
,
message
.
getAllRecipients
());
transport
.
close
();
}
public
static
void
sendMessage2
(
String
mail
,
String
url
,
String
str
)
throws
Exception
{
log
.
info
(
mail
+
","
+
url
+
","
+
str
);
// 创建参数配置, 用于连接邮件服务器的参数配置
Properties
props
=
new
Properties
();
// 使用的协议(JavaMail规范要求)
props
.
setProperty
(
"mail.transport.protocol"
,
"smtp"
);
// 发件人的邮箱的 SMTP 服务器地址
props
.
setProperty
(
"mail.smtp.host"
,
myEmailSMTPHost2
);
// 需要请求认证
props
.
setProperty
(
"mail.smtp.auth"
,
"true"
);
final
String
smtpPort
=
"465"
;
props
.
setProperty
(
"mail.smtp.port"
,
smtpPort
);
props
.
setProperty
(
"mail.smtp.socketFactory.class"
,
"javax.net.ssl.SSLSocketFactory"
);
props
.
setProperty
(
"mail.smtp.socketFactory.fallback"
,
"false"
);
props
.
setProperty
(
"mail.smtp.socketFactory.port"
,
smtpPort
);
Session
session
=
Session
.
getDefaultInstance
(
props
);
session
.
setDebug
(
false
);
// 设置为debug模式, 可以查看详细的发送 log
MimeMessage
message
;
message
=
createMimeMessage
(
session
,
myEmailAccount2
,
mail
,
url
,
str
);
Transport
transport
=
session
.
getTransport
();
transport
.
connect
(
myEmailAccount2
,
myEmailPassword2
);
transport
.
sendMessage
(
message
,
message
.
getAllRecipients
());
transport
.
close
();
}
/**
...
...
@@ -119,28 +113,18 @@ public class SendMailUtil {
* @return
* @throws Exception
*/
public
static
MimeMessage
createMimeMessage
(
Session
session
,
String
sendMail
,
String
receiveMail
,
String
url
,
String
strtitle
)
throws
Exception
{
public
static
MimeMessage
createMimeMessage
(
Session
session
,
String
sendMail
,
String
receiveMail
,
String
url
,
String
strtitle
)
throws
Exception
{
// 创建邮件
MimeMessage
message
=
new
MimeMessage
(
session
);
SimpleDateFormat
sfm
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
String
str
=
sfm
.
format
(
new
Date
());
// From: 发件人
message
.
setFrom
(
new
InternetAddress
(
sendMail
,
"有新短消息"
,
"UTF-8"
));
// To: 收件人(可以增加多个收件人、抄送、密送)
message
.
setRecipient
(
MimeMessage
.
RecipientType
.
TO
,
new
InternetAddress
(
receiveMail
,
"UTF-8"
));
// Subject: 邮件主题
message
.
setSubject
(
str
+
"数据结果"
,
"UTF-8"
);
/*
* Content: 邮件正文(可以使用html标签) message.setContent(
* "XX用户你好, 今天全场5折, 快来抢购, 错过今天再等一年。。。", "text/html;charset=UTF-8");
*/
// 创建消息部分
BodyPart
messageBodyPart
=
new
MimeBodyPart
();
String
content
=
"你好"
;
// content=new MailContent().getHtml();
// 正文消息消息
messageBodyPart
.
setContent
(
content
,
"text/html; charset=utf-8"
);
messageBodyPart
.
setContent
(
content
,
"text/html; charset=utf-8"
);
// 创建多重消息
Multipart
multipart
=
new
MimeMultipart
();
// 设置文本消息部分
...
...
@@ -152,29 +136,20 @@ public class SendMailUtil {
DataSource
source
=
new
FileDataSource
(
filename
);
messageBodyPart
.
setDataHandler
(
new
DataHandler
(
source
));
String
hourstr
=
""
;
if
(
new
Date
().
getHours
()
<=
10
)
{
hourstr
=
"09"
;
}
else
if
(
new
Date
().
getHours
()<=
13
){
hourstr
=
"12"
;
}
else
{
hourstr
=
"16"
;
}
// 年月日时
messageBodyPart
.
setFileName
(
sfm
.
format
(
new
Date
())
+
hourstr
+
".xls"
);
multipart
.
addBodyPart
(
messageBodyPart
);
// 发送完整消息
message
.
setContent
(
multipart
);
// 设置发件时间
message
.
setSentDate
(
new
Date
());
// 保存设置
message
.
saveChanges
();
return
message
;
}
public
static
void
main
(
String
[]
args
)
{
SendMailUtil
.
sendMessage
(
"shenjinzhu999@163.com"
,
"C:/Users/Administrator/Desktop/zhishu.xls"
,
"ccxe"
);
}
public
static
void
main
(
String
[]
args
)
{
try
{
SendMailUtil
.
sendMessage
(
"shenjinzhu999@163.com"
,
"C:/Users/Administrator/Desktop/zhishu.xls"
,
"ccxe"
);
}
catch
(
Exception
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
}
}
src/main/resources/datasource.properties
View file @
97845ba8
basefile
=
/home/nbzhiwei/upload/
#basefile=C:/Users/Administrator/Desktop/news222.xls
timefileUrl
=
/home/nbzhiwei/upload
#timefileUrl=C:/Users/
Administrator
/Desktop
#timefileUrl=C:/Users/
admin
/Desktop
#host=106.14.249.240
#port=26807
#password=1q2w3e4r
...
...
@@ -22,3 +22,5 @@ type=media
openid
=
oTc_rssM56GjwdRgwTD2dfQMq4Rg
#,oTc_rsju0ZJsEnzFX3WRgZihNWpc,oTc_rsme_NjN1tVh3GSHLdHtq1o8
########################################
src/main/webapp/showfinance.html
View file @
97845ba8
...
...
@@ -23,6 +23,7 @@
</head>
<body>
<a
href=
"/change4weixin/upExcelWithFinance.html"
>
文件上传页
</a>
<div
id=
"app"
>
<table
class=
"table table-bordered"
>
<thead>
...
...
@@ -32,9 +33,10 @@
</thead>
<tbody>
<tr
v-for=
"el in tbodyList"
>
<td>
{{el.type}}
</td>
<td>
{{el.name}}
</td>
<td>
{{el.url}}
</td>
<td
@
click=
"() => window.location.href = el.go"
>
点击上传
</td>
<td
><a
href=
"/change4weixin/upExcelWithFinance.html"
>
上传页
</a>
</td>
</tr>
</tbody>
</table>
...
...
@@ -47,7 +49,7 @@
new
Vue
({
el
:
'#app'
,
data
:
{
headList
:
[
'文件
'
,
'地址'
,
'上传
'
],
headList
:
[
'文件
类型'
,
'文件'
,
'地址'
,
'上传页
'
],
tbodyList
:
[]
},
created
()
{
...
...
src/main/webapp/upExcelWithFinance.html
View file @
97845ba8
...
...
@@ -19,7 +19,7 @@
<style
type=
"text/css"
>
body
{
background-image
:
url("../2.jpg")
;
background-image
:
url("../
change4weixin/
2.jpg")
;
display
:
flex
;
flex-flow
:
column
nowrap
;
justify-content
:
center
;
...
...
@@ -74,14 +74,14 @@ form {
<input
type=
"submit"
value=
"提交"
class=
"form-control"
id=
"submit"
/>
</div>
</form>
<form
action=
"/change4weixin/finance/upFinance
Source
"
enctype=
"multipart/form-data"
<form
action=
"/change4weixin/finance/upFinance
Long
"
enctype=
"multipart/form-data"
method=
"post"
>
<span>
长来源文件
</span>
<input
type=
"file"
name=
"file"
/>
<div
class=
"form-group"
>
<input
type=
"submit"
value=
"提交"
class=
"form-control"
id=
"submit"
/>
</div>
</form>
<form
action=
"/change4weixin/finance/upFinance
Source
Less"
enctype=
"multipart/form-data"
<form
action=
"/change4weixin/finance/upFinanceLess"
enctype=
"multipart/form-data"
method=
"post"
>
<span>
短来源文件
</span>
<input
type=
"file"
name=
"file"
/>
<div
class=
"form-group"
>
...
...
target/classes/datasource.properties
View file @
97845ba8
basefile
=
/home/nbzhiwei/upload/
#basefile=C:/Users/Administrator/Desktop/news222.xls
timefileUrl
=
/home/nbzhiwei/upload
#timefileUrl=C:/Users/
Administrator
/Desktop
#timefileUrl=C:/Users/
admin
/Desktop
#host=106.14.249.240
#port=26807
#password=1q2w3e4r
...
...
@@ -22,3 +22,5 @@ type=media
openid
=
oTc_rssM56GjwdRgwTD2dfQMq4Rg
#,oTc_rsju0ZJsEnzFX3WRgZihNWpc,oTc_rsme_NjN1tVh3GSHLdHtq1o8
########################################
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment