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:
How to Kill a Java Thread
How to Read HTTP Headers in Spring REST Controllers
How to Get All Spring-Managed Beans?
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Spring Boot - Rest Controller Unit Test
Format ZonedDateTime to String
Java Program to Perform Search in a BST
Java Program to Implement Flood Fill Algorithm
Hướng dẫn sử dụng lớp Console trong java
Java Program to Implement Segment Tree
More Jackson Annotations
Java Program to Implement Counting Sort
New Features in Java 9
Tránh lỗi NullPointerException trong Java như thế nào?
Send an email using the SMTP protocol
Collect a Java Stream to an Immutable Collection
Java Program to Implement Fermat Primality Test Algorithm
Partition a List in Java
Circular Dependencies in Spring
A Guide to BitSet in Java
Spring @RequestMapping New Shortcut Annotations
Deploy a Spring Boot WAR into a Tomcat Server
How to Set TLS Version in Apache HttpClient
Jackson vs Gson
Spring Boot: Customize the Jackson ObjectMapper
The HttpMediaTypeNotAcceptableException in Spring MVC
Registration with Spring Security – Password Encoding
Java Program to Find Hamiltonian Cycle in an UnWeighted Graph
Guide to Java 8’s Collectors
Recommended Package Structure of a Spring Boot Project
Spring 5 Functional Bean Registration
Beans and Dependency Injection