Квота в JavaMail — это ограниченное или фиксированное количество или количество сообщений в почтовом хранилище. Каждый запрос почтовой службы учитывается в квоте вызовов JavaMail API. Служба электронной почты может применять следующий критерий квоты:
-
Максимальный размер исходящих почтовых сообщений, включая вложения.
-
Максимальный размер входящих почтовых сообщений, включая вложения.
-
Максимальный размер сообщения, когда администратор является получателем
Максимальный размер исходящих почтовых сообщений, включая вложения.
Максимальный размер входящих почтовых сообщений, включая вложения.
Максимальный размер сообщения, когда администратор является получателем
Для управления квотами JavaMail имеет следующие классы:
Учебный класс | Описание |
---|---|
общедоступная квота | Этот класс представляет набор квот для данного корня квоты. Каждый корень квоты имеет набор ресурсов, представленных классом Quota.Resource. Каждый ресурс имеет имя (например, «ХРАНЕНИЕ»), текущее использование и ограничение использования. У него есть только один метод setResourceLimit (имя строки, длинный лимит) . |
открытый статический класс Quota.Resource | Представляет отдельный ресурс в корне квоты. |
открытый интерфейс QuotaAwareStore | Интерфейс, реализованный магазинами, которые поддерживают квоты. Методы getQuota и setQuota поддерживают модель квот, определенную расширением IMAP QUOTA. GmailSSLStore, GmailStore, IMAPSSLStore, IMAPStore являются известными классами реализации этого интерфейса. |
Давайте посмотрим и пример в следующих разделах, который проверяет имя хранилища почты, лимит и его использование.
Создать класс Java
Создайте файл Java-класса QuotaExample , содержимое которого выглядит следующим образом:
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(); } } }
Вот подключение к службе Gmail через сервер IMAP (imap.gmail.com), так как IMAPStore реализует QuotaAwareStore. Как только вы получите объект Store, извлеките массив Quota, итерируйте его и напечатайте соответствующую информацию.
Скомпилируйте и запустите
Теперь, когда наш класс готов, давайте скомпилируем вышеуказанный класс. Я сохранил класс QuotaExample.java в каталог: / home / manisha / JavaMailAPIExercise . Нам понадобятся jars javax.mail.jar и активации.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
Проверить вывод
Вы должны увидеть похожее сообщение в командной консоли: