📄 autosend.java
字号:
package com.digipower.automail.mailsender;
/**
* <p>Title: </p>
* <p>Description: TestStruts</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: foxconn</p>
* @author conti
* @version 1.0
*/
import java.io.*;
import java.util.*;
import com.digipower.automail.AutoMailConstants;
import java.sql.*;
import com.digipower.common.basic.*;
import java.io.*;
public class AutoSend {
private Connection conn = null;
private ConnectionDB_Oracle db = null;
private Statement stmt = null;
private ResultSet rs = null;
private PreparedStatement pstmt = null;
private String strSql = null;
private String strCom = "";
private String strCustomer = "";
public void autoSend(String FromAddress, String ReplyAddress, String ReplyToAddress) {
try
{
db = new ConnectionDB_Oracle();
conn = db.getConnection();
conn.setAutoCommit(false);
//获得未发送邮件的目录,主题,是否需要回条
GetMailList servers = new GetMailList();
ArrayList mailAddressList=new ArrayList();
mailAddressList=(ArrayList)(servers.getFolderName()) ;
ArrayList subjectList = new ArrayList();
subjectList= (ArrayList)(servers.getSubject()) ;
ArrayList replyList = new ArrayList();
replyList = (ArrayList)(servers.getReply());
System.out.println("mailAddressList.size():" + mailAddressList.size());
for (int i = 0; i < mailAddressList.size(); i++)
{
String addrFile = AutoMailConstants.BOOTDIR
+ mailAddressList.get(i) +
AutoMailConstants.MAIL_ADDRESS_FILE;
File f = new File(addrFile);
if (f.exists( )) {
FileReader fr = new FileReader(addrFile);
BufferedReader br = new BufferedReader(fr);
String strRead = "";
String strSend = "";
while((strRead = br.readLine()) != null)
{
strSend += strRead;
}
String mailAddrContent ="";
mailAddrContent=strSend;
//System.out.println(mailAddrContent);
ArrayList addressList= getMailAddr (mailAddrContent);
try {
//send to manager start
String[] MANAGER_ADDRESS = {"conti@power.com", "jack@power.com" };
for(int m=0; m<MANAGER_ADDRESS.length; m++)
{
System.out.println(MANAGER_ADDRESS[m]);
try
{
SendMail sendmail_man = new MailSendHtml(AutoMailConstants.HOST_NAME,
AutoMailConstants.USER_NAME,
AutoMailConstants.PSW);//每发一封信,都要new一个session
sendmail_man.setSubject((subjectList.get(i)).toString().trim());
sendmail_man.setSendDate(new java.util.Date());
String unSendMailPath = AutoMailConstants.BOOTDIR +
mailAddressList.get(i) +
AutoMailConstants.UPLOAD_FILE_DIRECTORY;
sendmail_man.setUnSendMailPath(unSendMailPath); //设置待发邮件的路径
String htmlText = "";
htmlText=sendmail_man.getHtmlFromFile(unSendMailPath + AutoMailConstants.UPLOAD_FILE);
//sendmail.setMailContent(plainText);
//System.out.println(htmlText);
sendmail_man.setMailContent(htmlText);
String [] files; //发送附件的部分
File dir=new File(AutoMailConstants.BOOTDIR + mailAddressList.get(i)
+ AutoMailConstants.ATTACH_FILES_DIRECTORY);
files=dir.list();
for (int j=0;j<files.length;j++)
{
sendmail_man.setAttachments(AutoMailConstants.BOOTDIR + mailAddressList.get(i)
+ AutoMailConstants.ATTACH_FILES_DIRECTORY + files[j]);
}
// sendmail_man.setMailFrom(AutoMailConstants.MAIL_FROM_ADDRESS);
sendmail_man.setMailFrom(FromAddress);
sendmail_man.setReplyTo(ReplyToAddress);
sendmail_man.setMailTo(MANAGER_ADDRESS[m], "cc");
System.out.println(MANAGER_ADDRESS[m]);
//sendmail.setMailTo(toAddress, "cc");
sendmail_man.sendMail();
}
catch(Exception e)
{
System.out.println("Send manager error.");
}
}
//send manager end
String[] toAddress = (String [])(addressList.toArray(new String[1]));
for(int k=0; k<toAddress.length; k++)
{
if(toAddress[k].indexOf("@") > 0 && toAddress[k].indexOf(".") > 0
&& (toAddress[k].endsWith(".com.cn") || toAddress[k].endsWith(".net")
|| toAddress[k].endsWith(".com") ||toAddress[k].endsWith(".tw")
|| toAddress[k].endsWith(".hk")
|| toAddress[k].endsWith(".org") || toAddress[k].endsWith(".cn")))
{
try
{
SendMail sendmail = new MailSendHtml(AutoMailConstants.HOST_NAME,
AutoMailConstants.USER_NAME,
AutoMailConstants.PSW);//每发一封信,都要new一个session
sendmail.setSubject((subjectList.get(i)).toString().trim());
sendmail.setSendDate(new java.util.Date());
String unSendMailPath = AutoMailConstants.BOOTDIR +
mailAddressList.get(i) +
AutoMailConstants.UPLOAD_FILE_DIRECTORY;
sendmail.setUnSendMailPath(unSendMailPath); //设置待发邮件的路径
String htmlText = "";
htmlText=sendmail.getHtmlFromFile(unSendMailPath + AutoMailConstants.UPLOAD_FILE);
//sendmail.setMailContent(plainText);
//System.out.println(htmlText);
sendmail.setMailContent(htmlText);
String [] files; //发送附件的部分
File dir=new File(AutoMailConstants.BOOTDIR + mailAddressList.get(i)
+ AutoMailConstants.ATTACH_FILES_DIRECTORY);
files=dir.list();
for (int j=0;j<files.length;j++)
{
sendmail.setAttachments(AutoMailConstants.BOOTDIR + mailAddressList.get(i)
+ AutoMailConstants.ATTACH_FILES_DIRECTORY + files[j]);
}
// sendmail.setMailFrom(AutoMailConstants.MAIL_FROM_ADDRESS);
sendmail.setMailFrom(FromAddress);
sendmail.setReplyTo(ReplyToAddress);
sendmail.setMailTo(toAddress[k], "to");
//sendmail.setMailTo(toAddress, "cc");
if (replyList.get(i).equals("Y"))
{
// sendmail.setHeader(AutoMailConstants.MAIL_REPLY_SUBJECT,
// AutoMailConstants.MAIL_REPLY_ADDRESS,
// new String((subjectList.get(i).toString().getBytes())),
// mailAddressList.get(i).toString());
sendmail.setHeader(AutoMailConstants.MAIL_REPLY_SUBJECT,
ReplyAddress,
new String((subjectList.get(i).toString().getBytes())),
mailAddressList.get(i).toString());
}
sendmail.setDescription((String)mailAddressList.get(i), toAddress[k]);
sendmail.sendMail();
servers.setMailDate((String)(mailAddressList.get(i)));
}
catch(Exception e)
{
System.out.println(e + "sendmail error.");
try
{
int iNum = 0;
strSql = "insert into FailureAddressLog values(?, ?, ?, ?)";
pstmt = conn.prepareStatement(strSql);
getComCustomer(mailAddressList.get(i).toString(), toAddress[k].toString());
//System.out.println("Insssssert:" + toAddress[k] + mailAddressList.get(i));
//System.out.println("ssss:" + strCom + strCustomer);
strSql =
"select count(*) as num from FailureAddressLog where FolderNameF = '" +
mailAddressList.get(i) + "' and company = '" + strCom + "' and customer = '" + strCustomer + "'";
stmt = conn.createStatement();
rs = stmt.executeQuery(strSql);
if (rs.next())
{
iNum = rs.getInt("num");
if (iNum <= 0) {
if (strCom != null && strCom.length() > 0
&& strCustomer != null && strCustomer.length() > 0) {
pstmt.setString(1, mailAddressList.get(i).toString());
pstmt.setString(2,
new String(strCom.getBytes()));
pstmt.setString(3,
new String(strCustomer.getBytes()));
pstmt.setString(4, toAddress[k]);
pstmt.executeUpdate();
conn.commit();
}
}
}
}
catch(Exception ee)
{
System.out.println(ee + "000000fail address insert error.");
}
}
}
else
{
//System.out.println("WrongAddress111111:" + toAddress[k] + mailAddressList.get(i));
try
{
int iNum = 0;
//db = new ConnectionDB_Oracle();
//conn = db.getConnection();
//conn.setAutoCommit(false);
strSql = "insert into FailureAddressLog values(?, ?, ?, ?)";
pstmt = conn.prepareStatement(strSql);
getComCustomer(mailAddressList.get(i).toString(), toAddress[k].toString());
strSql =
"select count(*) as num from FailureAddressLog where FolderNameF = '" +
mailAddressList.get(i) + "' and company = '" + strCom + "' and customer = '" + strCustomer + "'";
stmt = conn.createStatement();
rs = stmt.executeQuery(strSql);
if (rs.next())
{
iNum = rs.getInt("num");
if (iNum <= 0) {
if (strCom != null && strCom.length() > 0
&& strCustomer != null && strCustomer.length() > 0) {
pstmt.setString(1, mailAddressList.get(i).toString());
pstmt.setString(2,
new String(strCom.getBytes()));
pstmt.setString(3,
new String(strCustomer.getBytes()));
pstmt.setString(4, toAddress[k]);
pstmt.executeUpdate();
conn.commit();
}
}
}
}
catch(Exception e)
{
System.out.println(e + "11111fail address insert error.");
}
}
}
servers.sendOver((String)(mailAddressList.get(i)));//update the isSend and sendDate of table
}
catch (Exception ex) {
ex.printStackTrace();
//servers.sendOver((String)(mailAddressList.get(i)));
servers.disconn();
}
}
}
servers.disconn();
}
catch(Exception e)
{
System.out.print(e);
}
finally
{
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
System.out.println("Autosend conn close");
}
System.out.println("AutoSend finally");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
//--------------------
public static ArrayList getMailAddr(String mailAddr) {
String str=mailAddr;
StringTokenizer tokensA = new StringTokenizer( str,AutoMailConstants.ADDRESS_SEPARATOR);
ArrayList list = new ArrayList();
while( tokensA.hasMoreTokens() )
{
StringTokenizer tokensB = new StringTokenizer( tokensA.nextToken(),AutoMailConstants.SEPARATOR );
int count = 0;
while( tokensB.hasMoreTokens() )
{
count ++;
if( count == 3 )
{
list.add( tokensB.nextElement());
break;
}
tokensB.nextToken();
}
}
return list;
}
//Get the content of company and customer
void getComCustomer(String Folder, String Address){
String strRead = "";
String strContent = "";
String strTemp = null;
try
{
String addrFile = AutoMailConstants.BOOTDIR
+ Folder
+ AutoMailConstants.MAIL_ADDRESS_FILE;
File f = new File(addrFile);
if (f.exists())
{
// FileReader fr = new FileReader(addrFile);
// BufferedReader br = new BufferedReader(fr);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis, "UTF8");
BufferedReader br = new BufferedReader(isr);
while ( (strRead = br.readLine()) != null)
{
strContent += strRead;
}
int iEnd = strContent.indexOf(Address);
if(iEnd > 0)
{
strContent = strContent.substring(0, iEnd - 2);
iEnd = strContent.lastIndexOf(AutoMailConstants.SEPARATOR);
strCom = strContent.substring(iEnd + 2, strContent.length());
strContent = strContent.substring(0, iEnd);
iEnd = strContent.lastIndexOf(";");
strCustomer = strContent.substring(iEnd + 1, strContent.length());
System.out.println("strCustomer:" + strCustomer);
System.out.println("strCom:" + strCom);
}
br.close();
isr.close();
fis.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -