click.jsp
5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page import="com.espeed.reading.util.*"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.util.List"%>
<%@ page import="java.text.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>判断收件人是否读过某信</title>
</head>
<%
String clientIP= request.getHeader("x-forwarded-for");
if(clientIP == null || clientIP.length() == 0 || "unknown".equalsIgnoreCase(clientIP)) {
clientIP = request.getHeader("Proxy-Client-IP");
}
if(clientIP == null || clientIP.length() == 0 || "unknown".equalsIgnoreCase(clientIP)) {
clientIP = request.getHeader("WL-Proxy-Client-IP");
}
if(clientIP == null || clientIP.length() == 0 || "unknown".equalsIgnoreCase(clientIP)) {
clientIP = request.getRemoteAddr();
}
if(clientIP==null||clientIP==""||clientIP.equals("")){
clientIP="unKnow";
}
//当前时间
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String lastDate=sdf.format(new Date());
%>
<body>
<%
System.out.println("远程点读服务启动.......");
String to=request.getParameter("to");//点读地址
String mailuid=request.getParameter("mailuid");//邮件唯一码
String loginid=request.getParameter("loginid");//用户账号
String domain=request.getParameter("domain");//用户域名
boolean isReadNum=false;//是否是新的点读人
//链接数据库
Connection con=null;
PreparedStatement ps=null;
Statement stmt=null;
ResultSet rs=null;
try{
System.out.println(to+","+mailuid+","+loginid+","+domain);
con=DBUtil.getConnection();
//查询同一个mailUID与同地址只插入一条累加某地址的点读量
String findsql="select mail_read_email,mail_readnum from yxy_singreadinfo where mail_uid='"+mailuid+"' and mail_read_email='"+to+"'";
stmt=con.createStatement();
rs=stmt.executeQuery(findsql);
int readNum=0;
while(rs.next()){
isReadNum=true;
readNum=rs.getInt("mail_readnum")+1;
break;
}
//判断如果点读数大于5次则不做任务处理
if(readNum<=5){
//判断是否有此记录,是新记录就插入一条
if(!isReadNum){
//1.插入点读记录
String insertSql="insert into yxy_singreadinfo (mail_uid,mail_loginid,mail_domain,mail_readIP,mail_readDate,mail_read_email,mail_readnum) values(?,?,?,?,?,?,?)";
ps=con.prepareStatement(insertSql);
ps.setString(1, mailuid);
ps.setString(2, loginid);
ps.setString(3, domain);
ps.setString(4, clientIP);
ps.setString(5, lastDate);
ps.setString(6, to);
ps.setInt(7, 1);
ps.executeUpdate();
con.commit();
}else{
String updatesql="update yxy_singreadinfo set mail_readnum=?, mail_readDate=? , mail_readIP=? where mail_uid=? and mail_read_email=?";
ps=con.prepareStatement(updatesql);
ps.setInt(1,readNum);
ps.setString(2,lastDate);
ps.setString(3,clientIP);
ps.setString(4,mailuid);
ps.setString(5,to);
ps.executeUpdate();
con.commit();
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtil.close(rs,ps,con);
}
try{
request.setAttribute("ywxType", 5);
TrackUtil.recordOriginalMailInfo(request, response);
} catch(Exception e) {
e.printStackTrace();
LogUtil.saveInfoLog("click.jsp",
e);
}
WebmailDBUtil.updateAutoTaskMailClick(mailuid, "0");
//2.统计总数
/**try{
con=DBUtil.getInstance().getConnection();
//2.1查询是否存在此mailuid的邮件统计数
String findSql="select * from yxy_reading_count where reading_count_mailuid='"+mailuid+"'";
stmt=con.createStatement();
rs=stmt.executeQuery(findSql);
int isexites=0;//是否存在
String exitsmailuid="";//存在的UID
int exitstol=0;//存在的总点读数
int exitsperson=0;//存在的总点读人数
while(rs.next()){
isexites++;
exitsmailuid=rs.getString("reading_count_mailuid");
exitstol=rs.getInt("reading_count_tol");
exitsperson=rs.getInt("reading_count_person");
break;
}
if(isexites==0){//没有此记录
//插入该记录
String insertSql001="insert into yxy_reading_count (reading_count_mailuid,reading_count_loginid,reading_count_domain,reading_count_tol,reading_count_person,reading_count_date) values(?,?,?,?,?,?)";
ps=con.prepareStatement(insertSql001);
ps.setString(1, mailuid);
ps.setString(2, loginid);
ps.setString(3, domain);
ps.setInt(4, 1);
ps.setInt(5, 1);
ps.setString(6, lastDate);
ps.executeUpdate();
ps.close();
con.close();
}else{//存在此记录
if(isReadNum==0){
exitsperson=exitsperson+1;
}
//修改此记录
String updatesql="update yxy_reading_count set reading_count_tol=?,reading_count_person=?,reading_count_date=? where reading_count_mailuid=?";
ps=con.prepareStatement(updatesql);
ps.setInt(1, exitstol+1);
ps.setInt(2, exitsperson);
ps.setString(3, exitsmailuid);
ps.setString(4, lastDate);
ps.executeUpdate();
ps.close();
con.close();
}
}catch(Exception e){
e.printStackTrace();
}finally{
DBUtil.getInstance().close(rs,ps,con);
}*/
System.out.println("远程点读服务结束.......");
%>
</body>
</html>