📄 readmailtext.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 + -