JavaMail API - E-postaları Kontrol Etme
Bu bölüme geçmeden önce anlaşılması gereken iki husus vardır. OnlarCheck ve Fetch.
CheckJavaMail'de bir e-postanın girilmesi, posta kutusundaki ilgili klasörü açtığımız ve her iletiyi aldığımız bir işlemdir. Burada her mesajın sadece başlığını kontrol ediyoruz, yani Kimden, Kime, konu . İçerik okunmuyor.
FetchJavaMail'de bir e-postanın girilmesi, posta kutusundaki ilgili klasörü açtığımız ve her iletiyi aldığımız bir işlemdir. Başlığın yanı sıra, içerik türünü tanıyarak içeriği de okuruz.
JavaMail API kullanarak bir e-postayı kontrol etmek veya almak için POP veya IMAP sunucularına ihtiyacımız var. E-postaları kontrol etmek ve getirmek için Klasör ve Mağaza sınıfları gereklidir. Burada GMAIL'in POP3 sunucusunu (pop.gmail.com) kullandık. Bu bölümde JavaMail API kullanarak e-postaları nasıl kontrol edeceğinizi öğreneceksiniz. Getirme sonraki bölümlerde ele alınacaktır. E-postaları kontrol etmek için:
Oturum Alın
Pop3 Store nesnesi oluşturun ve pop sunucusuna bağlanın.
Klasör nesnesi oluşturun. Posta kutunuzdaki uygun klasörü açın.
Mesajlarınızı alın.
Mağaza ve Klasör nesnelerini kapatın.
Java Sınıfı Oluşturun
Bir java sınıf dosyası oluşturun CheckingMailsiçeriği aşağıdaki gibidir:
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);
}
}
Derleyin ve Çalıştırın
Artık sınıfımız hazır olduğuna göre, yukarıdaki sınıfı derleyelim. CheckingMails.java sınıfını dizine kaydettim:/home/manisha/JavaMailAPIExercise. Sınıf yolunda javax.mail.jar ve activation.jar kavanozlarına ihtiyacımız olacak . Sınıfı (her iki kavanoz da / home / manisha / dizinine yerleştirilir) komut isteminden derlemek için aşağıdaki komutu yürütün:
javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: CheckingMails.java
Artık sınıf derlendiğine göre, çalıştırmak için aşağıdaki komutu yürütün:
java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: CheckingMails
Çıkışı Doğrula
Komut konsolunda aşağıdaki mesajı görmelisiniz:
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
Burada, GELEN KUTUSUNDA bu durumda 4 olan mesaj sayısını yazdırdık. Ayrıca her e-posta mesajı için Konu, Kimden adresi ve Metin yazdırdık.