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:
Hướng dẫn Java Design Pattern – Service Locator
Posting with HttpClient
Java Program to Check Cycle in a Graph using Graph traversal
Convert XML to JSON Using Jackson
Assert an Exception is Thrown in JUnit 4 and 5
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
Deploy a Spring Boot App to Azure
Java Program to Implement RenderingHints API
Spring @RequestMapping New Shortcut Annotations
Java Program to Implement Vector API
Validations for Enum Types
Java Program to Solve any Linear Equations
Java Program to Implement Fermat Factorization Algorithm
A Comparison Between Spring and Spring Boot
Hướng dẫn Java Design Pattern – Observer
Custom Exception trong Java
Java Program to Implement Quick Sort with Given Complexity Constraint
Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins
HashSet trong Java hoạt động như thế nào?
Java Program to Find Number of Spanning Trees in a Complete Bipartite Graph
JUnit 5 for Kotlin Developers
Java Program for Topological Sorting in Graphs
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
Logout in an OAuth Secured Application
Creating a Web Application with Spring 5
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
A Guide To UDP In Java
Java Program to Perform Polygon Containment Test
Java Program to Perform Preorder Recursive Traversal of a Given Binary Tree
Spring Web Annotations
Hashing a Password in Java
Spring Security Authentication Provider