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 AVL Tree
Java – Write an InputStream to a File
Add Multiple Items to an Java ArrayList
Format ZonedDateTime to String
Disable DNS caching
Logging a Reactive Sequence
Java Program to implement Priority Queue
Jackson – JsonMappingException (No serializer found for class)
Java – InputStream to Reader
HashMap trong Java hoạt động như thế nào?
Hướng dẫn Java Design Pattern – Singleton
Java Program to Implement Binary Search Tree
StringBuilder vs StringBuffer in Java
Java Program to Implement LinkedBlockingQueue API
Java Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Spring Boot with Multiple SQL Import Files
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
Upload and Display Excel Files with Spring MVC
Iterable to Stream in Java
Java Program to Perform the Unique Factorization of a Given Number
Hướng dẫn sử dụng luồng vào ra nhị phân trong Java
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
Set Interface trong Java
Lập trình mạng với java
JWT – Token-based Authentication trong Jersey 2.x
So sánh Array và ArrayList trong Java
Spring Boot - Eureka Server
Sử dụng Fork/Join Framework với ForkJoinPool trong Java
Anonymous Classes in Java
A Quick Guide to Spring MVC Matrix Variables
Biến trong java
Spring Boot - Apache Kafka