Учебники

JavaMail API — управление квотами

Квота в 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

Проверить вывод

Вы должны увидеть похожее сообщение в командной консоли: