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 Implement Variable length array
Converting a Stack Trace to a String in Java
Java Program to Implement Hopcroft Algorithm
Một số ký tự đặc biệt trong Java
Introduction to Spring Cloud Rest Client with Netflix Ribbon
Composition, Aggregation, and Association in Java
Toán tử instanceof trong java
Zipping Collections in Java
Control Structures in Java
Java Program to Implement Wagner and Fisher Algorithm for online String Matching
A Guide to Java HashMap
Hướng dẫn Java Design Pattern – Object Pool
Spring RestTemplate Request/Response Logging
Java Program to Implement AVL Tree
Java 14 Record Keyword
Java – InputStream to Reader
LinkedHashSet trong Java hoạt động như thế nào?
Java Program to Implement ConcurrentSkipListMap API
Use Liquibase to Safely Evolve Your Database Schema
Using Custom Banners in Spring Boot
Java Program to Implement Sorted Doubly Linked List
Java Program to Implement Stack
Spring Boot - Admin Client
Converting a Stack Trace to a String in Java
List Interface trong Java
What is Thread-Safety and How to Achieve it?
New Features in Java 12
Java Program to Implement Stack API
Spring Boot - Building RESTful Web Services
Java Program to Find Number of Spanning Trees in a Complete Bipartite Graph
Java Program to Implement Sorted List
Java Program to Implement RenderingHints API