import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.JOptionPane;
import java.awt.event.*;public class Pop3test implements Runnable
{
Socket s = null;
BufferedReader in = null;
//BufferedWriter out = null;
PrintWriter out = null;
Vector vector = new Vector();
mailtxt mt = null;
boolean seemsg = false;
public static void main(String[] args){
Pop3test pop = new Pop3test();
Thread h = new Thread(pop);
h.start();
}
public void run(){
getmail("pop.yeah.net","user","****",110,true);
~~~~~用户名~~密码
}
public void getmail(String server,String user,String pwd,int port,boolean now){
try{
s = new Socket(server,port);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
//out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
out = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
seemsg = now;
String str;
// System.out.println(server+" pop3");
str = in.readLine();
System.out.println("USER :"+user);
if (str.indexOf("OK")<0){
JOptionPane.showMessageDialog(null,server+" error");
System.out.println(server+" error");
closeconn();
return;
}
if (!sent("USER "+user+"\n")){
closeconn();
return;
}
if (!sent("PASS "+pwd+"\n")){
closeconn();
return;
}
if (!sent("list\n")){
closeconn();
return;
}
int i=0;
while((str = in.readLine()) != null){
//System.out.println(str);
if (!(str.equals("."))){
i++;
}
else
break;
}
System.out.println("共有 "+i+" 封邮件");
String result = "";
for (int j=1;j<=i;j++){
readmail(j);
}
System.out.println("*****************************************");
closeconn();
}catch(Exception e){
System.out.println(e.toString());
}
}
public void closeconn(){
try{
out.write("QUIT\n");
out.flush();
System.out.println("________________________________________________");
in.close();
out.close();
s.close();
}catch(Exception e){
System.out.println(e.toString());
}
}
public boolean sent(String msg){
boolean b = true;
try{
String str;
out.write(msg);
out.flush();
str = in.readLine();
// System.out.println("sent "+msg);
// System.out.println("get "+str);
int i = str.indexOf("OK");
if (i<0){
System.out.println("i ="+i);
JOptionPane.showMessageDialog(null,msg+" error");
System.out.println(msg+" error");
b = false;
}
return b;
}catch(IOException io){
System.out.println("sent "+msg+" error");
System.out.println(io.toString());
return false;
}
}
public boolean readmail(int j){
System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
sent("RETR "+j+"\n");
String str="",result="";
System.out.println("这是第 "+j+" 封邮件");
try{
boolean received = false;
while (((str = in.readLine()) != null) &&(!(str.equals(".")))){
int n = -1;
// n = str.indexOf("Received:");
n = str.indexOf("Date:");
if (n>-1){
String maildate = str.substring(n+5,str.length()-n);
received = true;
System.out.println("DATE :"+maildate);
continue;
}
n = str.indexOf("Message-ID:");
if (n>-1){
String maildate = str.substring(n+11,str.length()-n);
System.out.println("Message-ID:"+maildate);
received = true;
continue;
}
n = str.indexOf("Message-Id:");
if (n>-1){
String maildate = str.substring(n+11,str.length()-n);
System.out.println("Message-ID:"+maildate);
received = true;
continue;
}
n = str.indexOf("To:");
if (n>-1){
String maildate = str.substring(n+3,str.length()-n);
System.out.println("To :"+maildate);
received = true;
continue;
}
n = str.indexOf("From:");
if (n>-1){
String maildate = str.substring(n+5,str.length()-n);
System.out.println("From :"+maildate);
received = true;
continue;
}
n = str.indexOf("Subject:");
if (n>-1){
String maildate = new String(str.substring(n+8,str.length()-n).getBytes("gb2312"));
// String maildate = str.substring(n+8,str.length()-n);
System.out.println("Subject :"+maildate);
received = true;
continue;
}
n = str.indexOf("X-Priority:");
if (n>-1){
String maildate = str.substring(n+11,str.length()-n);
System.out.println("X-Priority:"+maildate);
received = true;
continue;
}
n = str.indexOf("X-Originating-IP:");
if (n>-1){
String maildate = str.substring(n+17,str.length()-n);
System.out.println("X-Originating-IP:"+maildate);
received = true;
continue;
}
n = str.indexOf("Sender:");
if (n>-1){
String maildate = new String(str.substring(n+7,str.length()-n).getBytes("gb2312"));
//String maildate = str.substring(n+7,str.length()-n);
System.out.println("Sender :"+maildate);
received = true;
continue;
}
if (!received){
continue;
}
str = new String(str.getBytes("gb2312"));
//str = new String(bbb);
if (seemsg){
result += str + "\n";
}
}
if (seemsg){
System.out.println(result);
}
System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
return true;
}catch(IOException io){
System.out.println(io.toString());
return false;
}
}
}
import java.net.*;
import java.util.*;
import javax.swing.JOptionPane;
import java.awt.event.*;public class Pop3test implements Runnable
{
Socket s = null;
BufferedReader in = null;
//BufferedWriter out = null;
PrintWriter out = null;
Vector vector = new Vector();
mailtxt mt = null;
boolean seemsg = false;
public static void main(String[] args){
Pop3test pop = new Pop3test();
Thread h = new Thread(pop);
h.start();
}
public void run(){
getmail("pop.yeah.net","user","****",110,true);
~~~~~用户名~~密码
}
public void getmail(String server,String user,String pwd,int port,boolean now){
try{
s = new Socket(server,port);
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
//out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
out = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
seemsg = now;
String str;
// System.out.println(server+" pop3");
str = in.readLine();
System.out.println("USER :"+user);
if (str.indexOf("OK")<0){
JOptionPane.showMessageDialog(null,server+" error");
System.out.println(server+" error");
closeconn();
return;
}
if (!sent("USER "+user+"\n")){
closeconn();
return;
}
if (!sent("PASS "+pwd+"\n")){
closeconn();
return;
}
if (!sent("list\n")){
closeconn();
return;
}
int i=0;
while((str = in.readLine()) != null){
//System.out.println(str);
if (!(str.equals("."))){
i++;
}
else
break;
}
System.out.println("共有 "+i+" 封邮件");
String result = "";
for (int j=1;j<=i;j++){
readmail(j);
}
System.out.println("*****************************************");
closeconn();
}catch(Exception e){
System.out.println(e.toString());
}
}
public void closeconn(){
try{
out.write("QUIT\n");
out.flush();
System.out.println("________________________________________________");
in.close();
out.close();
s.close();
}catch(Exception e){
System.out.println(e.toString());
}
}
public boolean sent(String msg){
boolean b = true;
try{
String str;
out.write(msg);
out.flush();
str = in.readLine();
// System.out.println("sent "+msg);
// System.out.println("get "+str);
int i = str.indexOf("OK");
if (i<0){
System.out.println("i ="+i);
JOptionPane.showMessageDialog(null,msg+" error");
System.out.println(msg+" error");
b = false;
}
return b;
}catch(IOException io){
System.out.println("sent "+msg+" error");
System.out.println(io.toString());
return false;
}
}
public boolean readmail(int j){
System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
sent("RETR "+j+"\n");
String str="",result="";
System.out.println("这是第 "+j+" 封邮件");
try{
boolean received = false;
while (((str = in.readLine()) != null) &&(!(str.equals(".")))){
int n = -1;
// n = str.indexOf("Received:");
n = str.indexOf("Date:");
if (n>-1){
String maildate = str.substring(n+5,str.length()-n);
received = true;
System.out.println("DATE :"+maildate);
continue;
}
n = str.indexOf("Message-ID:");
if (n>-1){
String maildate = str.substring(n+11,str.length()-n);
System.out.println("Message-ID:"+maildate);
received = true;
continue;
}
n = str.indexOf("Message-Id:");
if (n>-1){
String maildate = str.substring(n+11,str.length()-n);
System.out.println("Message-ID:"+maildate);
received = true;
continue;
}
n = str.indexOf("To:");
if (n>-1){
String maildate = str.substring(n+3,str.length()-n);
System.out.println("To :"+maildate);
received = true;
continue;
}
n = str.indexOf("From:");
if (n>-1){
String maildate = str.substring(n+5,str.length()-n);
System.out.println("From :"+maildate);
received = true;
continue;
}
n = str.indexOf("Subject:");
if (n>-1){
String maildate = new String(str.substring(n+8,str.length()-n).getBytes("gb2312"));
// String maildate = str.substring(n+8,str.length()-n);
System.out.println("Subject :"+maildate);
received = true;
continue;
}
n = str.indexOf("X-Priority:");
if (n>-1){
String maildate = str.substring(n+11,str.length()-n);
System.out.println("X-Priority:"+maildate);
received = true;
continue;
}
n = str.indexOf("X-Originating-IP:");
if (n>-1){
String maildate = str.substring(n+17,str.length()-n);
System.out.println("X-Originating-IP:"+maildate);
received = true;
continue;
}
n = str.indexOf("Sender:");
if (n>-1){
String maildate = new String(str.substring(n+7,str.length()-n).getBytes("gb2312"));
//String maildate = str.substring(n+7,str.length()-n);
System.out.println("Sender :"+maildate);
received = true;
continue;
}
if (!received){
continue;
}
str = new String(str.getBytes("gb2312"));
//str = new String(bbb);
if (seemsg){
result += str + "\n";
}
}
if (seemsg){
System.out.println(result);
}
System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
return true;
}catch(IOException io){
System.out.println(io.toString());
return false;
}
}
}
干嘛要用低层的?