⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailsender.java

📁 Email营销是在用户事先许可的前提下
💻 JAVA
字号:
package com.qq.content;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Date;
import java.util.ArrayList;

public class MailSender {
		Properties props;	
		Session mailSession;
		MimeMessage message;
		Transport transport;

	public int init() {
		try{
			props=new Properties();//也可用Properties props = System.getProperties(); 
			//props.put("mail.smtp.host","smtp.163.com");//存储发送邮件服务器的信息
			props.put("mail.smtp.host","smtp.163.com");//存储发送邮件服务器的信息			
			props.put("mail.smtp.auth","true");//同时通过验证
			mailSession=Session.getInstance(props);//根据属性新建一个邮件会话
			mailSession.setDebug(false);
			message=new MimeMessage(mailSession);//由邮件会话新建一个消息对象	
			transport=mailSession.getTransport("smtp");
			//transport.connect("smtp.qq.com",25,"mclub","someotherdays");			
			transport.connect("smtp.163.com",25,"rj479","840209");//以smtp方式登录邮箱		
		}catch (Exception e){
			System.out.println("*********init() fail***********:"+e.getMessage());
			return -1;
		}
		return 0;
	}
	
	public MailSender() {
			int ret = init();
			if(ret!=0) 
				init();
	}
	
	public void closeConnection(){
		try{
			transport.close();	
		}catch (Exception e){
		
			System.out.println("Exception whe close:"+e.getMessage());
		}
	}

	public int sendServicesMail(String title, String msg, String [] services, String [] addto, String sender)
	{
		
		int i=0,ret=0;
		int sended = 0;
		UsersManager users;
		int save = 1;
		ArrayList ls;
		try{
			users = new UsersManager();
			ls = users.getUsersList(services);//取出所有订了某种服务的用户email,存入ls
		}catch(Exception e)
		{
			System.out.println("得到邮件列表错误:"+e.getMessage());
			return -2;
			}
			
		int size = ls.size();
		if(size==0){
			if((addto==null)||(addto.length==0))
				return -1;
			else 
				save = 0;
		}
		System.out.println("邮件列表长度:"+size);
		if(addto!=null){
			for(i=0;i<addto.length;i++){
				ls.add(addto[i]);
			}
		}
		size = ls.size();
		for(i=0;i<size;i++){
			String revievers = (String)ls.get(i);
			ret = sendMail(title, msg, revievers);
			if(ret == -2) 
				ret = sendMail(title, msg, revievers);
			if(ret==0){
				System.out.println(i+":"+revievers+" success");
				sended++;
			}
			else if(ret==-1){
				System.out.println(i+":wrong email:"+revievers);

			}
			else{
				System.out.println(i+":"+revievers+" failed"+ ret);
			}

		}
		System.out.println("发送列表长:"+size+", 发送成功数:"+ sended);
		if(save ==1 ){
			try{
				title = new String( title.getBytes("GBK"), "ISO-8859-1");
				title = title.replace("'","\\'");
				msg = new String( msg.getBytes("GBK"), "ISO-8859-1");
				msg = msg.replace("'","\\'");
		 		users.saveServiceMail(title, msg, services, sender, sended);
		 		
			} catch (Exception e){
			
				System.out.println("添加邮件数据库失败:"+e.getMessage());
				}
				
			users.addServiceMailSentNum(services);
		}
			
		return sended;
	}

	public int sendAssureMail(String mailBox, String [] services)
	{
		Encode_md5 md5 = new Encode_md5();
		String servicestr = "";
		String showstr = "";
		
		for(int i=0;i<services.length;i++){
			if((services[i]!=null)&&(services[i].length()>0)){
					servicestr = servicestr + services[i]+":"; 
					showstr = showstr + serviceSet.getChineseNameByServiceName(services[i])+"、";
			}
		}
		servicestr = servicestr.substring(0,servicestr.length()-1);
		showstr = showstr.substring(0,showstr.length()-1);
		String key = md5.encode(mailBox, servicestr);
		String title = "请您确认您刚刚订阅的服务";
		String msg = "您刚刚订阅了我们的"+showstr+"服务,如果这个订阅请求确实来自您本人,请您点击以下链接进行确认:<a href='"+db_config.url+"/assure.jsp?key="+key+"&mail="+mailBox+"&service="+servicestr+"' target=_blank>点击确认</a>,如果链接不能正常打开,请您将以下地址复制到IE的地址栏内,然后回车确认:" +
				db_config.url+"/assure.jsp?key="+key+"&mail="+mailBox+"&service="+servicestr;
	
		int ret = sendMail(title, msg, mailBox);
		if(ret==-2)
			ret = sendMail(title, msg, mailBox);
		return ret;
	}
	
	public int sendAssureQuitMail(String mailBox, String [] services)
	{
		Encode_md5 md5 = new Encode_md5();
		String servicestr = "";
		String showstr = "";
		
		for(int i=0;i<services.length;i++){
			if((services[i]!=null)&&(services[i].length()>0)){
				servicestr = servicestr + services[i]+":";
				showstr = showstr + serviceSet.getChineseNameByServiceName(services[i])+"、";

			}
		}
		servicestr = servicestr.substring(0,servicestr.length()-1);
		showstr = showstr.substring(0,showstr.length()-1);
		String key = md5.encode(mailBox, servicestr);//加密
		String title = "请您确认您的退订操作";
		String msg = "您刚刚退订了我们的"+showstr+"服务,如果这个退订请求确实来自您本人,请您点击以下链接进行确认:<a href='"+db_config.url+"/quit.jsp?key="+key+"&mail="+mailBox+"&service="+servicestr+"' target=_blank>点击确认</a>,如果链接不能正常打开,请您将以下地址复制到IE的地址栏内,然后回车确认:" +
				db_config.url+"/quit.jsp?key="+key+"&mail="+mailBox+"&service="+servicestr;
		int ret = sendMail(title, msg, mailBox);
		if(ret==-2)
			ret =  sendMail(title, msg, mailBox);
		return ret;
		
	}
		
	public int sendMail(String title, String msg, String mailBox)
	{
		
		if( (title == null )||(msg==null)||(mailBox==null)||(mailBox.indexOf("@")==-1))
			return -1;

//		设置邮件
		try{
			InternetAddress from=new InternetAddress("rj479@163.com");
			//InternetAddress from=new InternetAddress("mclub@tencent.com");			
			message.setFrom(from);//设置发件人
			InternetAddress toList=new InternetAddress(mailBox);
			message.setRecipient(Message.RecipientType.TO, toList);//设置收件人,并设置其接收类型为TO
	
			message.setSubject(title);//设置主题
			
			message.setText(msg);//设置信件内容
			
			message.setContent(msg,"text/html;charset=GBK");//设置邮件为网页格式,非纯文本
			message.setSentDate(new Date());//设置发信时间
		
	//		发送邮件
			message.saveChanges();//存储邮件信息
			transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址
		}
		catch(Exception e)
		{
				
				System.out.println(e.getMessage());
				init();
				return -2;
		}

		return 0;
	}
	
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {//用于执行程序时调试


	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -