JavaMail API - Kiểm tra email
Có hai khía cạnh cần phải hiểu trước khi tiếp tục với chương này. họ đangCheck và Fetch.
Checknhập email trong JavaMail là một quá trình mà chúng tôi mở thư mục tương ứng trong hộp thư và nhận từng thư. Ở đây chúng tôi chỉ kiểm tra tiêu đề của mỗi thư tức là Từ, Đến, chủ đề . Nội dung không được đọc.
Fetchnhập email trong JavaMail là một quá trình mà chúng tôi mở thư mục tương ứng trong hộp thư và nhận từng thư. Cùng với tiêu đề, chúng tôi cũng đọc nội dung bằng cách nhận dạng loại nội dung.
Để kiểm tra hoặc tìm nạp email bằng JavaMail API, chúng tôi cần máy chủ POP hoặc IMAP. Để kiểm tra và tìm nạp email, cần có các lớp Thư mục và Lưu trữ. Ở đây chúng tôi đã sử dụng máy chủ POP3 của GMAIL (pop.gmail.com). Trong chương này sẽ học cách kiểm tra email bằng JavaMail API. Tìm nạp sẽ được đề cập trong các chương tiếp theo. Để kiểm tra email:
Nhận một phiên
Tạo đối tượng pop3 Store và kết nối với máy chủ pop.
Tạo đối tượng thư mục. Mở thư mục thích hợp trong hộp thư của bạn.
Nhận tin nhắn của bạn.
Đóng các đối tượng Store và Folder.
Tạo lớp Java
Tạo tệp lớp java CheckingMails, nội dung của nó như sau:
package com.tutorialspoint;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
public class CheckingMails {
public static void check(String host, String storeType, String user,
String password)
{
try {
//create properties field
Properties properties = new Properties();
properties.put("mail.pop3.host", host);
properties.put("mail.pop3.port", "995");
properties.put("mail.pop3.starttls.enable", "true");
Session emailSession = Session.getDefaultInstance(properties);
//create the POP3 store object and connect with the pop server
Store store = emailSession.getStore("pop3s");
store.connect(host, user, password);
//create the folder object and open it
Folder emailFolder = store.getFolder("INBOX");
emailFolder.open(Folder.READ_ONLY);
// retrieve the messages from the folder in an array and print it
Message[] messages = emailFolder.getMessages();
System.out.println("messages.length---" + messages.length);
for (int i = 0, n = messages.length; i < n; i++) {
Message message = messages[i];
System.out.println("---------------------------------");
System.out.println("Email Number " + (i + 1));
System.out.println("Subject: " + message.getSubject());
System.out.println("From: " + message.getFrom()[0]);
System.out.println("Text: " + message.getContent().toString());
}
//close the store and folder objects
emailFolder.close(false);
store.close();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String host = "pop.gmail.com";// change accordingly
String mailStoreType = "pop3";
String username = "[email protected]";// change accordingly
String password = "*****";// change accordingly
check(host, mailStoreType, username, password);
}
}
Biên dịch và Chạy
Bây giờ lớp của chúng ta đã sẵn sàng, chúng ta hãy biên dịch lớp trên. Tôi đã lưu lớp CheckMails.java vào thư mục:/home/manisha/JavaMailAPIExercise. Chúng tôi cần các chum javax.mail.jar và activation.jar trong classpath. Thực thi lệnh bên dưới để biên dịch lớp (cả hai lọ đều được đặt trong thư mục / home / manisha /) từ dấu nhắc lệnh:
javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: CheckingMails.java
Bây giờ lớp đã được biên dịch, hãy thực thi lệnh dưới đây để chạy:
java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: CheckingMails
Xác minh đầu ra
Bạn sẽ thấy thông báo sau trên bảng điều khiển lệnh:
messages.length---4
---------------------------------
Email Number 1
Subject: Test Mail--Fetch
From: <[email protected]>
Text: javax.mail.internet.MimeMultipart@327a5b7f
---------------------------------
Email Number 2
Subject: testing ----checking simple email
From: <[email protected]>
Text: javax.mail.internet.MimeMultipart@7f0d08bc
---------------------------------
Email Number 3
Subject: Email with attachment
From: <[email protected]>
Text: javax.mail.internet.MimeMultipart@30b8afce
---------------------------------
Email Number 4
Subject: Email with Inline image
From: <[email protected]>
Text: javax.mail.internet.MimeMultipart@2d1e165f
Ở đây chúng tôi đã in số lượng tin nhắn trong INBOX là 4 trong trường hợp này. Chúng tôi cũng đã in Chủ đề, Địa chỉ từ và Văn bản cho mỗi email.