- JavaMail API 教程
- JavaMail - 首頁
- JavaMail API - 概述
- JavaMail - 環境設定
- JavaMail - 核心類
- JavaMail - 傳送郵件
- JavaMail - 檢查郵件
- JavaMail - 獲取郵件
- JavaMail - 身份驗證
- JavaMail - 回覆郵件
- JavaMail - 轉發郵件
- JavaMail - 刪除郵件
- JavaMail - Gmail SMTP 伺服器
- JavaMail - 資料夾管理
- JavaMail - 配額管理
- JavaMail - 退信
- JavaMail API 協議
- JavaMail - SMTP 伺服器
- JavaMail - IMAP 伺服器
- JavaMail - POP3 伺服器
- JavaMail API 有用資源
- JavaMail - 快速指南
- JavaMail - 有用資源
- JavaMail - 討論
JavaMail API - 配額管理
JavaMail 中的配額是指郵件儲存中訊息的數量或數量限制。每次郵件服務請求都會計入 JavaMail API 呼叫配額。電子郵件服務可以應用以下配額標準
包括附件在內的傳出郵件的最大大小。
包括附件在內的傳入郵件的最大大小。
管理員為收件人時郵件的最大大小
對於配額管理,JavaMail 具有以下類
| 類 | 描述 |
|---|---|
| public class Quota | 此類表示給定配額根目錄的一組配額。每個配額根目錄都有一組資源,由 Quota.Resource 類表示。每個資源都有一個名稱(例如,“STORAGE”)、當前使用量和使用限制。它只有一個方法 setResourceLimit(String name, long limit)。 |
| public static class Quota.Resource | 表示配額根目錄中的單個資源。 |
| public interface QuotaAwareStore | 支援配額的儲存實現的介面。getQuota 和 setQuota 方法支援由 IMAP QUOTA 擴充套件定義的配額模型。GmailSSLStore、GmailStore、IMAPSSLStore、IMAPStore 是此介面的已知實現類。 |
讓我們在以下部分檢視一個示例,該示例檢查郵件儲存名稱、限制及其使用情況。
建立 Java 類
建立一個名為 QuotaExample 的 Java 類檔案,其內容如下所示
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", "abc@gmail.com", "*****");
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();
}
}
}
這裡透過 IMAP(imap.gmail.com)伺服器連線到 Gmail 服務,因為 IMAPStore 實現 QuotaAwareStore。獲取 Store 物件後,獲取 Quota 陣列並遍歷它並列印相關資訊。
編譯和執行
現在我們的類已準備就緒,讓我們編譯上面的類。我已將類 QuotaExample.java 儲存到目錄:/home/manisha/JavaMailAPIExercise。我們需要將 javax.mail.jar 和 activation.jar 放在類路徑中。執行以下命令從命令提示符編譯類(這兩個 jar 檔案都放在 /home/manisha/ 目錄中)
javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: QuotaExample.java
現在類已編譯,執行以下命令執行
java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: QuotaExample
驗證輸出
您應該在命令控制檯上看到類似的訊息
imapStore ---imaps://abc%40gmail.com@imap.gmail.com quotaRoot:'' name:'STORAGE', limit:'15728640', usage:'513'
廣告