PlanRunClass.java 3.2 KB
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;
	}
}