API JavaMail - Gestion des quotas

Un quota dans JavaMail est un nombre ou une quantité limité ou fixe de messages dans un magasin de messagerie. Chaque demande de service de messagerie compte dans le quota d'appels d'API JavaMail. Un service de messagerie peut appliquer le critère de quota suivant:

  • Taille maximale des messages électroniques sortants, y compris les pièces jointes.

  • Taille maximale des messages électroniques entrants, y compris les pièces jointes.

  • Taille maximale du message lorsqu'un administrateur est un destinataire

Pour la gestion des quotas, JavaMail a les classes suivantes:

Classe La description
Quota de classe publique Cette classe représente un ensemble de quotas pour une racine de quota donnée. Chaque racine de quota a un ensemble de ressources, représenté par la classe Quota.Resource. Chaque ressource a un nom (par exemple, "STORAGE"), une utilisation actuelle et une limite d'utilisation. Cela n'a qu'une seule méthode setResourceLimit (nom de chaîne, limite longue) .
classe statique publique Quota.Resource Représente une ressource individuelle dans une racine de quota.
interface publique QuotaAwareStore Une interface implémentée par les magasins qui prennent en charge les quotas. Les méthodes getQuota et setQuota prennent en charge le modèle de quota défini par l'extension IMAP QUOTA. GmailSSLStore, GmailStore, IMAPSSLStore, IMAPStore sont les classes d'implémentation connues de cette interface.

Voyons et exemple dans les sections suivantes qui vérifie le nom de stockage du courrier, la limite et son utilisation.

Créer une classe Java

Créer un fichier de classe Java QuotaExample, dont le contenu est le suivant:

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

Voici la connexion au service gmail via le serveur IMAP (imap.gmail.com), car IMAPStore implémente le QuotaAwareStore. Une fois que vous obtenez l'objet Store, récupérez le tableau Quota, parcourez-le et imprimez les informations pertinentes.

Compiler et exécuter

Maintenant que notre classe est prête, compilons la classe ci-dessus. J'ai enregistré la classe QuotaExample.java dans le répertoire:/home/manisha/JavaMailAPIExercise. Nous aurions besoin des jars javax.mail.jar et activation.jar dans le classpath. Exécutez la commande ci-dessous pour compiler la classe (les deux fichiers JAR sont placés dans le répertoire / home / manisha /) à partir de l'invite de commande:

javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: QuotaExample.java

Maintenant que la classe est compilée, exécutez la commande ci-dessous pour exécuter:

java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: QuotaExample

Vérifier la sortie

Vous devriez voir un message similaire sur la console de commande:

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