import java.net.*;
import java.io.*;
public class DisplayMail {
public static void main(String arg[]) {
//
// usage :
// DisplayMail [mailServer] [user] [password]
// (will not delete mail on the server)
//
try {
// connect on port 110 (POP3)
System.out.println("Connect to " + arg[0] + ":110");
Socket s = new Socket(arg[0], 110);
BufferedReader in = new BufferedReader(
new InputStreamReader(s.getInputStream()));
BufferedWriter out = new BufferedWriter(
new OutputStreamWriter(s.getOutputStream()));
DisplayMail mail = new DisplayMail();
mail.login(in, out, arg[1], arg[2]);
int i = mail.check(in,out);
if (i==0) {
System.out.println("No mail waiting.");
}
else {
for (int j=1; j <= i; j++) {
String msg = mail.get(in, out, j);
System.out.println("*****");
System.out.println(msg);
System.out.println("*****");
}
//
// If the mail was removed from the server
// (see getMail()) then we must COMMIT with
// the "QUIT" command :
// send(out, "QUIT");
//
}
}
catch (Exception e) {
e.printStackTrace();
}
}
public String get
(BufferedReader in, BufferedWriter out, int i)
throws IOException {
String s = "";
String t = "";
send(out, "RETR "+i);
while (((s = in.readLine()) != null)
&&(!(s.equals(".")))) {
t += s + "\n";
}
//
// To remove the mail on the server :
// send(out, "DELE "+i);
// receive(in);
//
return t;
}
private void send(BufferedWriter out, String s)
throws IOException {
System.out.println(s);
out.write(s+"\n");
out.flush();
}
private String receive(BufferedReader in)
throws IOException {
String s = in.readLine();
System.out.println(s);
return s;
}
private void login
(BufferedReader in, BufferedWriter out, String user, String pass)
throws IOException {
receive(in);
send(out, "HELO theWorld");
receive(in);
send(out, "USER " + user);
receive(in);
send(out, "PASS " + pass);
receive(in);
}
private int check
(BufferedReader in, BufferedWriter out)
throws IOException {
return getNumberOfMessages(in, out);
}
public int getNumberOfMessages
(BufferedReader in, BufferedWriter out)
throws IOException {
int i = 0;
String s;
send(out, "LIST");
receive(in);
while((s = receive(in)) != null) {
if (!(s.equals("."))) {
i++;
}
else {
return i;
}
}
return 0;
}
}
Done! Happy Coding!
Related posts:
Instance Profile Credentials using Spring Cloud
Convert char to String in Java
Java – Byte Array to Reader
Java Program to Implement Circular Doubly Linked List
Java Program to Implement AVL Tree
Tính đóng gói (Encapsulation) trong java
Spring Security Registration – Resend Verification Email
String Initialization in Java
So sánh HashMap và HashSet trong Java
Guide to java.util.concurrent.BlockingQueue
Java Program to Check if a Matrix is Invertible
Java Program to Implement Quick sort
Java Program to Implement the Monoalphabetic Cypher
Using Optional with Jackson
Spring Security 5 – OAuth2 Login
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set
CharSequence vs. String in Java
Class Loaders in Java
Java Program to Construct an Expression Tree for an Infix Expression
Guide to Escaping Characters in Java RegExps
Java Program to Perform Insertion in a BST
Java Program to Implement Skew Heap
Java Program to Implement Interpolation Search Algorithm
So sánh HashSet, LinkedHashSet và TreeSet trong Java
Reading an HTTP Response Body as a String in Java
Java Program to Decode a Message Encoded Using Playfair Cipher
Runnable vs. Callable in Java
Java Program to Check if a Given Set of Three Points Lie on a Single Line or Not
Hướng dẫn Java Design Pattern – Service Locator
How to Remove the Last Character of a String?
Guide to the Synchronized Keyword in Java
HttpClient 4 Cookbook