JavaMail API - Kota Yönetimi

JavaMail'deki bir kota, bir e-posta deposundaki sınırlı veya sabit sayı veya miktarda mesajdır. Her Posta hizmeti isteği, JavaMail API Çağrıları kotasına dahil edilir. Bir e-posta hizmeti aşağıdaki kota kriterini uygulayabilir:

  • Ekler dahil, giden posta iletilerinin maksimum boyutu.

  • Ekler dahil maksimum gelen posta iletisi boyutu.

  • Bir yönetici alıcı olduğunda maksimum mesaj boyutu

Kota yönetimi için JavaMail aşağıdaki sınıflara sahiptir:

Sınıf Açıklama
genel sınıf Kotası Bu sınıf, belirli bir kota kökü için bir dizi kota temsil eder. Her kota kökü, Quota.Resource sınıfı tarafından temsil edilen bir kaynak kümesine sahiptir. Her kaynağın bir adı (örneğin, "DEPOLAMA"), geçerli bir kullanımı ve kullanım sınırı vardır. Bunun yalnızca bir yöntemi vardır setResourceLimit (Dize adı, uzun sınır) .
public statik sınıf Quota.Resource Bir kota kökündeki bağımsız bir kaynağı temsil eder.
genel arayüz QuotaAwareStore Kotaları destekleyen Mağazalar tarafından uygulanan bir arayüz. GetQuota ve setQuota yöntemleri IMAP KONTENJAN uzantısı ile tanımlanan kota modelini destekler. GmailSSLStore, GmailStore, IMAPSSLStore, IMAPStore , bu arayüzün bilinen uygulama sınıflarıdır.

Posta depolama adı, sınırı ve kullanımını kontrol eden aşağıdaki bölümleri görelim ve örnekleyelim.

Java Sınıfı Oluşturun

Bir java sınıf dosyası oluşturun QuotaExampleiçeriği aşağıdaki gibidir:

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

IMAPStore QuotaAwareStore'u uyguladığından, IMAP (imap.gmail.com) sunucusu aracılığıyla gmail hizmetine bağlantı burada verilmiştir. Mağaza nesnesini aldıktan sonra, Kota dizisini getirin ve üzerinde yineleyin ve ilgili bilgileri yazdırın.

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. QuotaExample.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: QuotaExample.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: QuotaExample

Çıkışı Doğrula

Komut konsolunda benzer bir mesaj görmelisiniz:

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