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'