JavaMail API - Memeriksa Email

Ada dua aspek yang perlu dipahami sebelum melanjutkan dengan bab ini. MerekaCheck dan Fetch.

  • CheckMengirim email di JavaMail adalah proses di mana kita membuka folder masing-masing di kotak surat dan menerima setiap pesan. Di sini kami hanya memeriksa header dari setiap pesan yaitu subjek Dari, Kepada ,. Konten tidak dibaca.

  • Fetchmemasukkan email di JavaMail adalah proses di mana kita membuka folder masing-masing di kotak surat dan menerima setiap pesan. Bersamaan dengan header kita juga membaca konten dengan mengenali tipe konten.

Untuk memeriksa atau mengambil email menggunakan JavaMail API, kita membutuhkan server POP atau IMAP. Untuk memeriksa dan mengambil email, diperlukan kelas Folder dan Store. Di sini kami telah menggunakan server POP3 GMAIL (pop.gmail.com). Pada bab ini akan dipelajari bagaimana cara mengecek email menggunakan JavaMail API. Pengambilan akan dibahas dalam bab-bab berikutnya. Untuk memeriksa email:

  • Dapatkan Sesi

  • Buat objek pop3 Store dan hubungkan dengan server pop.

  • Buat objek folder. Buka folder yang sesuai di kotak surat Anda.

  • Dapatkan pesan Anda.

  • Tutup objek Store dan Folder.

Buat Kelas Java

Buat file kelas java CheckingMails, yang isinya adalah sebagai berikut:

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);

   }

}

Kompilasi dan Jalankan

Sekarang kelas kita sudah siap, mari kita kompilasi kelas di atas. Saya telah menyimpan kelas CheckingMails.java ke direktori:/home/manisha/JavaMailAPIExercise. Kita membutuhkan jars javax.mail.jar dan activation.jar di classpath. Jalankan perintah di bawah ini untuk mengkompilasi kelas (kedua jars ditempatkan di direktori / home / manisha /) dari command prompt:

javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: CheckingMails.java

Sekarang kelas telah dikompilasi, jalankan perintah di bawah ini untuk menjalankan:

java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: CheckingMails

Verifikasi Output

Anda akan melihat pesan berikut di konsol perintah:

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

Disini kami telah mencetak jumlah pesan di INBOX yaitu 4 dalam kasus ini. Kami juga telah mencetak Subjek, Dari alamat dan Teks untuk setiap pesan email.