447bcf0d93a7680330fae2bdf5c9bae0a477b8c2.svn-base
3.2 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
package com.espeed.plan;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.mail.Transport;
import com.espeed.yxy.pojo.YxyMarketingPlan;
import com.espeed.yxy.pojo.YxySendSmtpInfo;
import com.espeed.yxy.pojo.YxyUserAddress;
import com.espeed.yxy.service.YxyMarketingPlanService;
import com.espeed.yxy.service.YxySendMailService;
import com.espeed.yxy.tool.DES_Encrypt;
/***
*
* @author 谢勇
* 计划执行类
*
*/
public class PlanRunClass {
public void planrun(YxyMarketingPlanService planservice,YxySendMailService mailservice,YxySendSmtpInfo smtpinfo,YxyMarketingPlan planinfo){
try {
//判断此计划是否有地址
int addressgroupid=planinfo.getPlan_groupid();
String loginid = planinfo.getLoginid();//账号
String domain = planinfo.getDomain();//域名
int plan_differen = planinfo.getPlan_differen();//区分客户的本地和CRM库 0:本地 1:CRM
//SMTP参数
String host=smtpinfo.getSmtp_service_number();//服务器
String account=smtpinfo.getSmtp_service_account();//账号
String password=smtpinfo.getSmtp_service_password();//密码
int isssl=smtpinfo.getSmtp_is_ssl();//是否SSL加密
String port=smtpinfo.getSmtp_service_port();//端口号
//查询地址
List<YxyUserAddress> addresslist=planservice.findAddressByGroupid(addressgroupid,plan_differen,loginid,domain,planinfo.getOther_name());
if(addresslist.size()>0){
List<Object> isTong=connectionService(host,account,password,isssl,port);
if(isTong.get(0).toString().equals("1")){
}else{
System.out.println("服务器验证失败!");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
/** 连接邮件服务器,验证用户名,密码*/
public static List<Object> connectionService(String host,String servername,String serverpaswd,int isssl,String port) {
List<Object> result=new ArrayList<Object>();
result.add(0);
result.add(0);
result.add(0);
Properties props =new Properties();
Transport transport =null;
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");/** 设定发送邮件时需要进行身份验证*/
javax.mail.Session mailSession = javax.mail.Session.getInstance(props);
mailSession.setDebug(false);
//判断是否需要ssl验证
String ishost=host.split("\\.")[1];
if(isssl==1){
if("gmail".equals(ishost)){
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.port", port);
props.put("mail.smtp.socketFactory.port", port);
}else{
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.port", port);
}
}
try {
//解密密码
DES_Encrypt desEncrypt = new DES_Encrypt();
desEncrypt.setKey("06");
desEncrypt.setDesString(serverpaswd);
serverpaswd=desEncrypt.getStrM();//smtp密码需要解密
transport = mailSession.getTransport("smtp");
transport.connect(host, servername, serverpaswd);
result.set(0, 1);
result.set(1, props);
result.set(2, transport);
} catch (Exception e) {
e.printStackTrace();
System.out.println("验证失败");
}
return result;
}
}