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:
Sử dụng CyclicBarrier trong Java
So sánh ArrayList và Vector trong Java
Debug a JavaMail Program
Hướng dẫn Java Design Pattern – Memento
Weak References in Java
Adding Shutdown Hooks for JVM Applications
Java Program to Find the Edge Connectivity of a Graph
Spring Boot - Flyway Database
Java Program to Perform Right Rotation on a Binary Search Tree
Consumer trong Java 8
Java Program to Find Shortest Path Between All Vertices Using Floyd-Warshall’s Algorithm
Java Program to Implement Pollard Rho Algorithm
Truyền giá trị và tham chiếu trong java
Java Program to Implement LinkedHashMap API
Đồng bộ hóa các luồng trong Java
Từ khóa throw và throws trong Java
Guide to the Java TransferQueue
Introduction to Spring Security Expressions
How to Get a Name of a Method Being Executed?
HTTP Authentification and CGI/Servlet
HashSet trong java
Spring Boot with Multiple SQL Import Files
Guide to java.util.Formatter
Query Entities by Dates and Times with Spring Data JPA
Spring Data Reactive Repositories with MongoDB
HttpAsyncClient Tutorial
Inject Parameters into JUnit Jupiter Unit Tests
@Order in Spring
Add Multiple Items to an Java ArrayList
Base64 encoding và decoding trong Java 8
Java Program to Implement Max Heap
Java Program to Find Second Smallest of n Elements with Given Complexity Constraint