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:
Kelas | Deskripsi |
---|---|
Kuota kelas umum | Kelas 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 publik | Mewakili sumber daya individu di akar kuota. |
antarmuka publik QuotaAwareStore | Antarmuka 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'