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:
Java Program to Check the Connectivity of Graph Using BFS
Setting the Java Version in Maven
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Hướng dẫn Java Design Pattern – Adapter
Java Program to Represent Linear Equations in Matrix Form
Encode/Decode to/from Base64
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Introduction to Spring Data JPA
Java Program to Implement Cubic convergence 1/pi Algorithm
Retrieve User Information in Spring Security
The XOR Operator in Java
A Guide to JUnit 5 Extensions
Converting Between a List and a Set in Java
Java Program to Solve the Fractional Knapsack Problem
Java Program to Implement Gale Shapley Algorithm
Removing Elements from Java Collections
HttpClient Basic Authentication
Receive email using IMAP
Java Program to Implement RoleList API
Spring Security OAuth Login with WebFlux
What is a POJO Class?
Understanding Memory Leaks in Java
Guide to CopyOnWriteArrayList
Using the Map.Entry Java Class
Hướng dẫn Java Design Pattern – DAO
Sort a HashMap in Java
Java Program to Generate Random Numbers Using Probability Distribution Function
A Guide to Apache Commons Collections CollectionUtils
Circular Dependencies in Spring
Debug a JavaMail Program
Request a Delivery / Read Receipt in Javamail
Error Handling for REST with Spring