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 – DAO
Java Program to Implement Gauss Seidel Method
Spring Data JPA and Null Parameters
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
Notify User of Login From New Device or Location
Spring Boot Integration Testing with Embedded MongoDB
Java Program to Check if a Given Set of Three Points Lie on a Single Line or Not
Java Optional as Return Type
Java – Generate Random String
A Guide to TreeMap in Java
Java Program to Create the Prufer Code for a Tree
Java Program to Implement Gale Shapley Algorithm
Java Program to Implement Suffix Array
Returning Image/Media Data with Spring MVC
Java Program to implement Bit Matrix
Java Program to Find the Minimum value of Binary Search Tree
Hướng dẫn Java Design Pattern – Factory Method
Spring Boot - Tomcat Port Number
Java 8 StringJoiner
Find the Registered Spring Security Filters
Java Program to Implement Euclid GCD Algorithm
Java Program to Implement Skew Heap
Why String is Immutable in Java?
Generic Constructors in Java
Java Program to Implement Johnson’s Algorithm
Java CyclicBarrier vs CountDownLatch
Guide to java.util.concurrent.Future
Uploading MultipartFile with Spring RestTemplate
Spring Security Registration – Resend Verification Email
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Java Program to Implement Karatsuba Multiplication Algorithm
Lập trình đa luồng với CompletableFuture trong Java 8