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

📄 readmailtext.java

📁 短信发送
💻 JAVA
字号:
/**
 * Created at Dec 5, 2008
 */
package com.jdev.app.db;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.sql.ResultSet;
import java.util.Properties;
import java.util.regex.Pattern;

import com.jdev.db.ConnectPool;
import com.jdev.net.connector.ConnectionFactory;
import com.jdev.net.event.EventAdapter;
import com.jdev.net.event.Notifier;
import com.jdev.util.Debug;
import com.jdev.util.FileUtil;
import com.jdev.util.PropsUtil;

/**
 * <p>Title: ReadMailText</p>
 * <p>Description: </p>
 * @author Lawrence
 * @version 1.0
 */
public class ReadMailText extends EventAdapter implements Runnable {

	/* (non-Javadoc)
	 * @see com.jdev.net.event.EventAdapter#onStatus(java.lang.String, int)
	 */
	@Override
	public void onStatus(String key, int status) {
		// TODO Auto-generated method stub
		super.onStatus(key, status);
	}

	protected Notifier notifier;
	private java.sql.Connection conn;
	private ConnectPool connectionManager;
	private EmailQueueHelper emailDataHelper;
	private final static String module = ReadMailText.class.getName();
	private static String ENCODING = "UTF-8";
	private final static Pattern PATTERN;//用于效验邮箱地址的正确性
	static {
		PATTERN = Pattern.compile(".+@[^.@]+(\\.[^.@]+)+$");//此处放弃了传统匹配方式,这是为了兼容非英文域名的电子邮箱
	}	
	/**
	 * 
	 */
	public ReadMailText() {
		notifier = Notifier.getNotifier();
		connectionManager = ConnectPool.getInstance();
		emailDataHelper = new EmailQueueHelper(ConnectionFactory.CLIENT);
	}

	/* (non-Javadoc)
	 * @see java.lang.Runnable#run()
	 */
	public void run() {
		try {
			conn = connectionManager.getConnection("test");

		} catch (Exception e) {
			notifier.fireOnError("-->Error occured in ReadMailText openDb: "
					+ e.getMessage());
		}
		while(!Thread.interrupted()) {
			try {
				Thread.sleep(1000);
				if (conn == null || conn.isClosed()) {
					Thread.sleep(10000);
					try {
						conn = connectionManager.getConnection("test");

					} catch (Exception e) {
						notifier.fireOnError("-->Error occured in DbReader openDb: "
								+ e.getMessage());
					}

					continue;
				}
				
				getFile();
//				conn.close();				
			} catch (Exception e) {
				continue;
			}
		}

	}

	private void getFile() {
		Debug.logVerbose("begin to read mailtext file ", module);
		
		InputStream in = null;
		try {
			char[] buffer = new char[4096];
			int len = 0;
			StringBuffer content = new StringBuffer(4096);

			if (ENCODING == null)
				ENCODING = PropsUtil.ENCODING;

			try {
				InputStreamReader fr = new InputStreamReader(new FileInputStream(
						"c:\\EMAIL.txt"), ENCODING);

				BufferedReader br = new BufferedReader(fr);
				String str = br.readLine();
				while ( str.length()>0 ) {
					Thread.sleep(1000);
					try {
						// 拼成
						for(int i=0; i< emailDataHelper.getBodyRecord(); i++) {
							String body = emailDataHelper.readBody(i);
							StringBuilder sb = new StringBuilder(body);
							sb.append(";" + str);
//							Debug.logVerbose(sb.toString());
							emailDataHelper.writeSend(sb.toString());
							
						}
//						// 写入pushmail 表
//						java.sql.Statement stmt = conn.createStatement();
//						ResultSet rs = null;
//						StringBuilder strUpdate = new StringBuilder(
//						"insert into PUSH_MAIL(MAIL_ADDR,MAIL_ID) values('");
//						strUpdate.append(str);
//						strUpdate.append("',ASEQ_MSGURNO.NEXTVAL)");
//						Debug.logVerbose(strUpdate.toString());
//						
//						// 判断是否存在
//						StringBuilder strSelect = new StringBuilder("select * from PUSH_MAIL WHERE MAIL_ADDR in ('");
//						strSelect.append(str);
//						strSelect.append("')");
//						
//						rs = stmt.executeQuery(strSelect.toString());
//						if(!rs.next()){
//							stmt.executeUpdate(strUpdate.toString());							
//						}						
//						stmt.close();
					} catch (Exception e) {
						Debug.logError(e,module);
					}
					str = br.readLine();
				}

				br.close();
				fr.close();
			
				FileOutputStream testfile = new FileOutputStream("c:\\EMAIL.txt"); 
				testfile.write(new String("").getBytes());				
			} catch (Exception e) {
				throw new Exception(e);
			}
			
		}catch(Exception e){
			Debug.logError("config error:" + e, module);
		}
	}
	
	public static void main(String[] args) throws Exception {
		try {
			ReadMailBody rd = new ReadMailBody();
			Thread rs = new Thread(rd);
			rs.start();
	
			ReadMailText d = new ReadMailText();
			Thread s = new Thread(d);
			s.start();
			
			EmailPush emailPush = new EmailPush("smtp.163.com","\"合智创展\"<gwt-tech@163.com>","gwt-tech","gwtgwt");
			Thread e = new Thread(emailPush);
			e.start();
			
			Thread f = new Thread(new EmailPush("smtp.sina.com","\"合智创展\"<gwttech@sina.com>","gwttech","gwtgwt"));
			f.start();

			Thread g = new Thread(new EmailPush("smtp.126.com","\"合智创展\"<gwttech@126.com>","gwttech","gwtgwt"));
			g.start();

			Thread h = new Thread(new EmailPush("smtp.yeah.net","\"合智创展\"<gwttech@yeah.net>","gwttech","gwtgwt"));
			h.start();
			
		} catch (Exception e) {
			throw new Exception(e);
		}
	}
	
}

⌨️ 快捷键说明

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