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:
The “final” Keyword in Java
Java Program to Find Nearest Neighbor for Static Data Set
Spring REST API + OAuth2 + Angular
Java Program to Generate N Number of Passwords of Length M Each
Java Program to Perform the Unique Factorization of a Given Number
Giới thiệu Google Guice – Injection, Scope
How to Get a Name of a Method Being Executed?
Java Program to Check Cycle in a Graph using Topological Sort
Handling URL Encoded Form Data in Spring REST
Giới thiệu JDBC Connection Pool
Tiêu chuẩn coding trong Java (Coding Standards)
Java Program to Implement Graph Structured Stack
LinkedHashSet trong Java hoạt động như thế nào?
New Features in Java 9
Java Program to Implement Stein GCD Algorithm
A Guide to ConcurrentMap
Spring REST API + OAuth2 + Angular
JWT – Token-based Authentication trong Jersey 2.x
Daemon Threads in Java
So sánh Array và ArrayList trong Java
Java Program to do a Breadth First Search/Traversal on a graph non-recursively
File Upload with Spring MVC
“Stream has already been operated upon or closed” Exception in Java
Weak References in Java
Introduction to Spring Security Expressions
Java Program to Implement Quick sort
Java Program to Represent Graph Using Incidence List
Send an email using the SMTP protocol
HttpClient 4 Cookbook
Java Program to Check Cycle in a Graph using Graph traversal
Java Program to Find a Good Feedback Vertex Set
OAuth 2.0 Resource Server With Spring Security 5