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 for Douglas-Peucker Algorithm Implementation
Java Program to Perform Insertion in a BST
Tính trừu tượng (Abstraction) trong Java
Java Program to Implement Bubble Sort
Java Program to Implement Shoelace Algorithm
Reactive Flow with MongoDB, Kotlin, and Spring WebFlux
Multi Dimensional ArrayList in Java
Java Program to Create the Prufer Code for a Tree
Quick Guide to Spring Controllers
Java Program to implement Dynamic Array
Pagination and Sorting using Spring Data JPA
Hướng dẫn Java Design Pattern – Mediator
Query Entities by Dates and Times with Spring Data JPA
Java Program to Implement Knight’s Tour Problem
HttpClient 4 Cookbook
Apache Commons Collections SetUtils
Java Program to implement Sparse Vector
Limiting Query Results with JPA and Spring Data JPA
Cài đặt và sử dụng Swagger UI
Java Program to Implement Borwein Algorithm
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Java Program to Check if a Directed Graph is a Tree or Not Using DFS
Java Program to Implement Coppersmith Freivald’s Algorithm
Java Program to Implement Graph Structured Stack
Java Program to Implement the RSA Algorithm
Hướng dẫn sử dụng lớp Console trong java
Java – File to Reader
Jackson JSON Views
Java Program to Perform LU Decomposition of any Matrix
Spring WebClient Requests with Parameters
Java Program to Implement Gauss Jordan Elimination
Autoboxing và Unboxing trong Java