📄 popcommands.jad
字号:
// Decompiled by Jad v1.5.7. Copyright 1997-99 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: popcommands.java
import java.io.*;
import java.util.Date;
import java.util.Vector;
public class popcommands extends Thread
{
String MailOn;
String AutoOn;
String ServerText;
String PassText;
String UserText;
String AutoFile;
String MailTemp;
String ReplyToText;
boolean ReadOne;
Vector DeleteMessages;
Vector SentToNames;
boolean VectorChanged;
MimeCoder setMimeCoderForMessage(String s)
{
return MimeChooser.ChooseMime(s);
}
void processMime(MimeCoder mimecoder, MessageHeader messageheader)
{
if(mimecoder.isMultiPart())
{
MimeCoder amimecoder[] = mimecoder.getMessageParts();
for(int i = 0; i < amimecoder.length; i++)
processMime(amimecoder[i], messageheader);
return;
}
String as[] = mimecoder.getCurrentMessage();
if(mimecoder.getMimeName().equals("text/plain") && !ReadOne)
{
ReadOne = true;
new ProcessMessage(as, ServerText, messageheader.From, ReplyToText);
}
}
boolean processMimeMessage(int i, MessageHeader messageheader, MimeCoder mimecoder)
{
boolean flag = true;
if(messageheader.Subject.equalsIgnoreCase("popcommands"))
{
processMime(mimecoder, messageheader);
DeleteMessages.addElement(new Integer(i));
flag = false;
}
return flag;
}
public void retrieveMessage(int i, pop3 pop3_1)
{
Object obj = new PlainText();
String s = "";
String s1 = "";
String s3 = "";
boolean flag1 = true;
popStatus popstatus = pop3_1.retr(i);
Vector vector = new Vector();
boolean flag2 = false;
ReadOne = false;
if(popstatus.OK())
{
String as[] = popstatus.Responses();
int j;
for(j = 0; j < as.length && flag1; j++)
{
String s2 = as[j].trim();
System.out.println("[" + s2 + "]");
if(s2.length() == 0)
{
flag1 = false;
}
else
{
if(s2.length() > 5 && s2.substring(0, 6).equalsIgnoreCase("From: "))
{
System.out.println("FOUND FROM USER [" + s2.substring(6, s2.length()) + "]");
s1 = s2.substring(6, s2.length());
}
if(s2.length() > 8 && s2.substring(0, 9).equalsIgnoreCase("Subject: "))
s = s2.substring(9, s2.length());
if(s2.length() > 12 && s2.substring(0, 13).equalsIgnoreCase("Content-Type:"))
{
String s4 = "";
boolean flag = true;
while(flag)
{
s4 = s4 + s2;
if(s2.charAt(s2.length() - 1) != ';')
flag = false;
else
if(++j < as.length)
{
s2 = as[j].trim();
if(s2.length() == 0)
{
flag = false;
flag1 = false;
}
}
else
{
flag = false;
flag1 = false;
j--;
}
}
obj = setMimeCoderForMessage(s4);
}
}
}
System.out.println("B");
MessageHeader messageheader = new MessageHeader(s, s1);
System.out.println("c");
if(obj != null)
{
for(j = j; j < as.length; j++)
vector.addElement(as[j].trim());
((MimeCoder) (obj)).setMessage(vector);
boolean flag3 = false;
System.out.println("MAIL ON = " + MailOn);
System.out.println("AUTO ON = " + AutoOn);
if(MailOn.equalsIgnoreCase("ON"))
{
System.out.println("D");
if(!processMimeMessage(i, messageheader, ((MimeCoder) (obj))))
{
flag3 = true;
try
{
FileOutputStream fileoutputstream = new FileOutputStream((new Date()).getTime() + ".txt");
DataOutputStream dataoutputstream = new DataOutputStream(fileoutputstream);
for(int k = 0; k < as.length; k++)
dataoutputstream.writeBytes(as[k] + "\n");
fileoutputstream.close();
}
catch(Exception exception)
{
System.out.println("Dailed Save " + exception.getMessage());
}
}
}
if(AutoOn.equalsIgnoreCase("ON"))
{
System.out.println("E");
if(!flag3 && !SentToNames.contains(messageheader.From) && !s.equalsIgnoreCase("popcommands"))
{
MailSender mailsender = new MailSender("rich_shepard@yahoo.com", ServerText, ReplyToText);
mailsender.sendLine("Subject: Re: " + s);
System.out.println("Subject is [" + s + "]");
mailsender.sendLine("MIME-Version: 1.0");
mailsender.sendLine("Content-Type: text/html\n");
try
{
FileInputStream fileinputstream = new FileInputStream(AutoFile);
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(fileinputstream));
for(String s5 = bufferedreader.readLine(); s5 != null; s5 = bufferedreader.readLine())
mailsender.sendLine(s5);
fileinputstream.close();
}
catch(Exception exception1)
{
System.out.println("Mail response failed " + exception1.getMessage());
}
mailsender.closeMessage();
SentToNames.addElement(messageheader.From);
VectorChanged = true;
}
}
}
}
}
public boolean fireServer()
{
boolean flag = false;
pop3 pop3_1 = null;
try
{
pop3_1 = new pop3(ServerText, UserText, PassText);
popStatus popstatus = pop3_1.connect();
if(!popstatus.OK())
System.out.println("Failed Connect");
if(popstatus.OK())
popstatus = pop3_1.login();
if(!popstatus.OK())
System.out.println("Failed Login");
if(popstatus.OK())
{
DeleteMessages.removeAllElements();
popStatus popstatus1 = pop3_1.list();
String as[] = popstatus1.Responses();
for(int i = 0; i < as.length; i++)
{
System.out.println("Getting Mail===========" + i);
try
{
retrieveMessage(i + 1, pop3_1);
}
catch(Exception exception1)
{
System.out.println("Failed Reading Mail Message " + i + " [" + exception1.getMessage() + "]");
}
System.out.println("Finished Getting Mail==" + i);
}
for(int j = 0; j < DeleteMessages.size(); j++)
{
System.out.println("Removing Mail " + j);
pop3_1.dele(((Integer)DeleteMessages.elementAt(j)).intValue());
flag = true;
}
}
}
catch(Exception exception)
{
System.out.println("Failed Popping " + exception.getMessage());
}
try
{
pop3_1.quit();
}
catch(Exception _ex) { }
return flag;
}
public void reloadIni()
{
getParams();
}
void getParams()
{
try
{
int i = 0;
FileInputStream fileinputstream = new FileInputStream("appconfig.ini");
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(fileinputstream));
for(String s = bufferedreader.readLine(); s != null; s = bufferedreader.readLine())
switch(i)
{
default:
break;
case 0: // '\0'
MailTemp = s;
i = 1;
break;
case 1: // '\001'
if(s.equals("END"))
i = 2;
break;
case 2: // '\002'
MailOn = s;
i = 3;
break;
case 3: // '\003'
AutoFile = s;
i = 4;
break;
case 4: // '\004'
AutoOn = s;
i = 5;
break;
case 5: // '\005'
i = 6;
break;
case 6: // '\006'
i = 7;
break;
case 7: // '\007'
ServerText = s;
i = 8;
break;
case 8: // '\b'
UserText = s;
i = 9;
break;
case 9: // '\t'
PassText = s;
i = 10;
break;
case 10: // '\n'
ReplyToText = s;
i = 11;
break;
}
return;
}
catch(Exception exception)
{
System.out.println("Failed Command Loop " + exception.getMessage());
}
}
public void run()
{
int i = 0x493e0;
do
try
{
System.out.println("START Looking for mail");
VectorChanged = false;
if(fireServer())
i = 60000;
else
i += 30000;
if(i > 0x493e0)
i = 0x493e0;
System.out.println("END Looking for mail");
if(VectorChanged)
saveNamesVector();
Thread.sleep(i);
}
catch(Exception _ex)
{
return;
}
while(true);
}
public void closeDown()
{
stop();
}
void saveNamesVector()
{
try
{
FileOutputStream fileoutputstream = new FileOutputStream("SentNames.ini");
DataOutputStream dataoutputstream = new DataOutputStream(fileoutputstream);
for(int i = 0; i < SentToNames.size(); i++)
dataoutputstream.writeBytes(SentToNames.elementAt(i) + "\n");
fileoutputstream.close();
return;
}
catch(Exception exception)
{
System.out.println("Failed Loading " + exception.getMessage());
}
}
void loadNamesVector()
{
try
{
FileInputStream fileinputstream = new FileInputStream("SentNames.ini");
BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(fileinputstream));
for(String s = bufferedreader.readLine(); s != null; s = bufferedreader.readLine())
SentToNames.addElement(s);
fileinputstream.close();
return;
}
catch(Exception exception)
{
System.out.println("Failed Loading " + exception.getMessage());
}
}
public popcommands()
{
MailOn = "";
AutoOn = "";
ServerText = "";
PassText = "";
UserText = "";
AutoFile = "";
MailTemp = "";
ReplyToText = "";
ReadOne = false;
DeleteMessages = new Vector();
SentToNames = new Vector();
VectorChanged = false;
getParams();
loadNamesVector();
start();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -