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:
New Features in Java 12
Java Program to Permute All Letters of an Input String
Java Program to Implement Bubble Sort
How to use the Spring FactoryBean?
The Modulo Operator in Java
Java Program to Implement Stack using Linked List
Custom JUnit 4 Test Runners
Java 8 Streams peek() API
Java Program to Implement Sorting of Less than 100 Numbers in O(n) Complexity
Prevent Cross-Site Scripting (XSS) in a Spring Application
Java – Convert File to InputStream
Java Program to Implement Fermat Factorization Algorithm
Lớp TreeMap trong Java
Java Program to Implement Hash Tables with Linear Probing
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Create a Custom Exception in Java
The StackOverflowError in Java
A Guide to the ViewResolver in Spring MVC
Configure a RestTemplate with RestTemplateBuilder
Spring RestTemplate Request/Response Logging
Jackson – Marshall String to JsonNode
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java
Java Program to Find Path Between Two Nodes in a Graph
Hướng dẫn Java Design Pattern – Mediator
HttpClient 4 Cookbook
Kết hợp Java Reflection và Java Annotations
Java Program to Implement Sparse Array
String Operations with Java Streams
4 tính chất của lập trình hướng đối tượng trong Java
Java Program to Check if a Matrix is Invertible
Java Program to Implement Skip List
Java Program to Implement Patricia Trie