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:
Guide to Spring Cloud Kubernetes
Introduction to Spring Data MongoDB
Comparing Dates in Java
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Java Program to Implement Shoelace Algorithm
Java Program to Implement Hash Tables with Double Hashing
Spring Boot - Twilio
Summing Numbers with Java Streams
Java Program to Check for balanced parenthesis by using Stacks
Setting Up Swagger 2 with a Spring REST API
Java Program to add two large numbers using Linked List
Function trong Java 8
Java Program to Implement PrinterStateReasons API
Java Program to Implement Meldable Heap
Explain about URL and HTTPS protocol
ETL with Spring Cloud Data Flow
Intro to Spring Boot Starters
Prevent Brute Force Authentication Attempts with Spring Security
Overview of Spring Boot Dev Tools
A Guide To UDP In Java
Java Program to Implement Maximum Length Chain of Pairs
Hướng dẫn Java Design Pattern – Singleton
Changing Annotation Parameters At Runtime
Java Program to Create a Random Linear Extension for a DAG
Spring Boot Actuator
Lập trình hướng đối tượng (OOPs) trong java
Java Program to Emulate N Dice Roller
Recommended Package Structure of a Spring Boot Project
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Java Program to Implement Dijkstra’s Algorithm using Set
Java Program to Implement Sorted Singly Linked List
Chuyển đổi giữa các kiểu dữ liệu trong Java