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 5 Testing with @EnabledIf Annotation
HashSet trong java
Java 14 Record Keyword
Removing all Nulls from a List in Java
Exception Handling in Java
Java Program to Implement AVL Tree
Hướng dẫn Java Design Pattern – Service Locator
Introduction to Eclipse Collections
Test a REST API with Java
Adding Parameters to HttpClient Requests
Java Program to Implement Gift Wrapping Algorithm in Two Dimensions
How to Get a Name of a Method Being Executed?
Receive email using IMAP
Convert Hex to ASCII in Java
Java Program to Implement Merge Sort Algorithm on Linked List
Java Program to Compute Discrete Fourier Transform Using the Fast Fourier Transform Approach
Guide to the Volatile Keyword in Java
Hamcrest Collections Cookbook
Spring Boot - Google OAuth2 Sign-In
Java Program to Implement Booth Algorithm
New Features in Java 8
Java Program to Compute Cross Product of Two Vectors
Send an email using the SMTP protocol
Thao tác với tập tin và thư mục trong Java
Java Program to Implement ArrayBlockingQueue API
Java Program to Represent Graph Using Incidence Matrix
Hướng dẫn Java Design Pattern – Visitor
Java Program to Implement Singly Linked List
Introduction to Spring Data JPA
Java Program to Solve a Matching Problem for a Given Specific Case
Guide to @ConfigurationProperties in Spring Boot
Spring Boot - CORS Support