<%@ 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>