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:
Spring REST API with Protocol Buffers
Giới thiệu Swagger – Công cụ document cho RESTfull APIs
Java Program to Implement LinkedList API
ArrayList trong java
Java IO vs NIO
Overview of the java.util.concurrent
Java Program to Implement Sieve Of Sundaram
Spring Boot - Google Cloud Platform
Batch Processing with Spring Cloud Data Flow
Java Program to Implement Hash Tree
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Spring Boot Annotations
Java Program to Implement Sparse Matrix
Java Program to Implement Traveling Salesman Problem using Nearest neighbour Algorithm
Spring Cloud Connectors and Heroku
Java Program to Give an Implementation of the Traditional Chinese Postman Problem
Spring Boot Change Context Path
Tips for dealing with HTTP-related problems
Introduction to Spring Boot CLI
HttpClient Timeout
Java Concurrency Interview Questions and Answers
Join and Split Arrays and Collections in Java
Hướng dẫn Java Design Pattern – Object Pool
OAuth2 Remember Me with Refresh Token
Reversing a Linked List in Java
Custom HTTP Header with the HttpClient
Tạo chương trình Java đầu tiên sử dụng Eclipse
Java Program to Implement Stack using Linked List
Receive email using IMAP
Jackson – Decide What Fields Get Serialized/Deserialized
Java Program to Perform LU Decomposition of any Matrix
Java Program to Find Minimum Element in an Array using Linear Search