JavaMail API - Manajemen Kuota

Kuota di JavaMail adalah jumlah atau jumlah pesan yang terbatas atau tetap di penyimpanan email. Setiap permintaan layanan Mail dihitung dalam kuota Panggilan API JavaMail. Layanan email dapat menerapkan kriteria kuota berikut:

  • Ukuran maksimum pesan email keluar, termasuk lampiran.

  • Ukuran maksimum pesan email masuk, termasuk lampiran.

  • Ukuran pesan maksimum ketika administrator adalah penerima

Untuk Manajemen kuota JavaMail memiliki kelas-kelas berikut:

KelasDeskripsi
Kuota kelas umumKelas ini mewakili sekumpulan kuota untuk root kuota tertentu. Setiap root kuota memiliki sekumpulan resource, yang diwakili oleh kelas Quota.Resource. Setiap sumber daya memiliki nama (misalnya, "PENYIMPANAN"), penggunaan saat ini, dan batas penggunaan. Ini hanya memiliki satu metode setResourceLimit (Nama string, batas panjang) .
Quota.Resource kelas statis publikMewakili sumber daya individu di akar kuota.
antarmuka publik QuotaAwareStoreAntarmuka yang diterapkan oleh Toko yang mendukung kuota. Metode getQuota dan setQuota mendukung model kuota yang ditentukan oleh ekstensi IMAP QUOTA. GmailSSLStore, GmailStore, IMAPSSLStore, IMAPStore adalah kelas penerapan yang diketahui dari antarmuka ini.

Mari kita lihat dan contoh di bagian berikut yang memeriksa nama penyimpanan surat, batas dan penggunaannya.

Buat Kelas Java

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

package com.tutorialspoint;

import java.util.Properties;

import javax.mail.Quota;
import javax.mail.Session;
import javax.mail.Store;

import com.sun.mail.imap.IMAPStore;

public class QuotaExample 
{
   public static void main(String[] args) 
   {
      try 
      {
         Properties properties = new Properties();
         properties.put("mail.store.protocol", "imaps");
         properties.put("mail.imaps.port", "993");
         properties.put("mail.imaps.starttls.enable", "true");
         Session emailSession = Session.getDefaultInstance(properties);
         // emailSession.setDebug(true);

         // create the IMAP3 store object and connect with the pop server
         Store store = emailSession.getStore("imaps");

         //change the user and password accordingly
         store.connect("imap.gmail.com", "[email protected]", "*****");
         IMAPStore imapStore = (IMAPStore) store;
         System.out.println("imapStore ---" + imapStore);

         //get quota
         Quota[] quotas = imapStore.getQuota("INBOX");
         //Iterate through the Quotas
         for (Quota quota : quotas) {
            System.out.println(String.format("quotaRoot:'%s'",
               quota.quotaRoot));
            //Iterate through the Quota Resource
            for (Quota.Resource resource : quota.resources) {
               System.out.println(String.format(
                  "name:'%s', limit:'%s', usage:'%s'", resource.name,
                  resource.limit, resource.usage));
            }
         }
      } catch (Exception e) 
      {
         e.printStackTrace();
      }
   }
}

Berikut adalah koneksi ke layanan gmail melalui server IMAP (imap.gmail.com), karena IMAPStore mengimplementasikan QuotaAwareStore. Setelah Anda mendapatkan objek Store, ambil array Quota dan lakukan iterasi melaluinya dan cetak informasi yang relevan.

Kompilasi dan Jalankan

Sekarang kelas kita sudah siap, mari kita kompilasi kelas di atas. Saya telah menyimpan kelas QuotaExample.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: QuotaExample.java

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

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

Verifikasi Output

Anda akan melihat pesan serupa di konsol perintah:

imapStore ---imaps://abc%[email protected]
quotaRoot:''
name:'STORAGE', limit:'15728640', usage:'513'