API JavaMail - Serveurs POP3

Le protocole POP (Post Office Protocol) est un protocole Internet standard de couche application utilisé par les clients de messagerie locaux pour récupérer les messages électroniques d'un serveur distant via une connexion TCP / IP. POP prend en charge les exigences simples de téléchargement et de suppression pour l'accès aux boîtes aux lettres distantes. Un serveur POP3 écoute sur le port 110 bien connu.

Paquet com.sun.mail.pop3est un fournisseur de protocole POP3 pour l'API JavaMail qui permet d'accéder à une banque de messages POP3. Le tableau ci-dessous répertorie les classes de ce package:

NomLa description
POP3FolderUn dossier POP3 (ne peut être que "INBOX").
POP3MessageUn message POP3.
POP3SSLStoreUn magasin de messages POP3 utilisant SSL.
POP3StoreUn magasin de messages POP3.

Quelques points à noter au-dessus de ce fournisseur:

  • Le fournisseur POP3 prend en charge un seul dossier nommé INBOX. En raison des limitations du protocole POP3, de nombreuses fonctionnalités de l'API JavaMail telles que la notification d'événements, la gestion des dossiers, la gestion des indicateurs, etc. ne sont pas autorisées.

  • Le fournisseur POP3 est accessible via les API JavaMail en utilisant le nom de protocole pop3 ou une URL de la forme pop3: // utilisateur: mot de passe @ hôte: port / INBOX " .

  • POP3 ne prend en charge aucun indicateur permanent. Par exemple, l' indicateur Flags.Flag.RECENT ne sera jamais défini pour les messages POP3. C'est à l'application de déterminer quels messages d'une boîte aux lettres POP3 sont nouveaux .

  • POP3 ne prend pas en charge la méthode Folder.expunge (). Pour supprimer et effacer des messages, définissez l'indicateur Flags.Flag.DELETED sur les messages et fermez le dossier à l'aide de la méthode Folder.close (true).

  • POP3 ne fournit pas de date de réception , la méthode getReceivedDate renverra donc null.

  • Lors de l'accès aux en-têtes d'un message POP3, le fournisseur POP3 utilise la commande TOP pour récupérer tous les en-têtes, qui sont ensuite mis en cache.

  • Lors de l'accès au contenu d'un message POP3, le fournisseur POP3 utilise la commande RETR pour récupérer l'intégralité du message.

  • La méthode POP3Message.invalidate peut être utilisée pour invalider les données mises en cache sans fermer le dossier.

Le fournisseur de protocole POP3 prend en charge les propriétés suivantes, qui peuvent être définies dans l'objet Session JavaMail. Les propriétés sont toujours définies sous forme de chaînes; la colonne Type décrit comment la chaîne est interprétée.

NomTypeLa description
mail.pop3.userChaîneNom d'utilisateur par défaut pour POP3.
mail.pop3.hostChaîneLe serveur POP3 auquel se connecter.
mail.pop3.portintLe port du serveur POP3 auquel se connecter, si la méthode connect () n'en spécifie pas explicitement un. La valeur par défaut est 110.
mail.pop3.connectiontimeoutintValeur du délai d'expiration de la connexion au socket en millisecondes. La valeur par défaut est le délai d'expiration infini.
mail.pop3.timeoutintValeur du délai d'expiration d'E / S de socket en millisecondes. La valeur par défaut est le délai d'expiration infini.
mail.pop3.rsetbeforequitbooléenEnvoyez une commande POP3 RSET lors de la fermeture du dossier, avant d'envoyer la commande QUIT. La valeur par défaut est false.
mail.pop3.message.class ChaîneNom de classe d'une sous-classe de com.sun.mail.pop3.POP3Message. La sous-classe peut être utilisée pour gérer (par exemple) des en-têtes Content-Type non standard. La sous-classe doit avoir un constructeur public de la forme MyPOP3Message (Folder f, int msgno) lève MessagingException.
mail.pop3.localaddressChaîneAdresse locale (nom d'hôte) à laquelle se connecter lors de la création du socket POP3. Par défaut, l'adresse sélectionnée par la classe Socket.
mail.pop3.localport intNuméro de port local auquel se connecter lors de la création du socket POP3. Par défaut, le numéro de port choisi par la classe Socket.
mail.pop3.apop.enable booléenS'il est défini sur true, utilisez APOP au lieu de USER / PASS pour vous connecter au serveur POP3, si le serveur POP3 prend en charge APOP. APOP envoie un résumé du mot de passe plutôt que le mot de passe en texte clair. La valeur par défaut est false.
mail.pop3.socketFactoryUsine de douillesSi elle est définie sur une classe qui implémente l'interface javax.net.SocketFactory, cette classe sera utilisée pour créer des sockets POP3.
mail.pop3.socketFactory.classChaîneS'il est défini, spécifie le nom d'une classe qui implémente l'interface javax.net.SocketFactory. Cette classe sera utilisée pour créer des sockets POP3.
mail.pop3.socketFactory.fallbackbooléenS'il est défini sur true, l'échec de la création d'un socket à l'aide de la classe d'usine de socket spécifiée entraînera la création du socket à l'aide de la classe java.net.Socket. La valeur par défaut est true.
mail.pop3.socketFactory.port intSpécifie le port auquel se connecter lors de l'utilisation de la fabrique de sockets spécifiée. S'il n'est pas défini, le port par défaut sera utilisé.
mail.pop3.ssl.enablebooléenS'il est défini sur true, utilisez SSL pour vous connecter et utilisez le port SSL par défaut. La valeur par défaut est false pour le protocole "pop3" et true pour le protocole "pop3s".
mail.pop3.ssl.checkserveridentity booléenS'il est défini sur true, vérifiez l'identité du serveur comme spécifié par RFC 2595. La valeur par défaut est false.
mail.pop3.ssl.trust ChaîneS'il est défini et qu'aucune fabrique de sockets n'a été spécifiée, permet l'utilisation d'un MailSSLSocketFactory.
S'il est défini sur "*", tous les hôtes sont approuvés.
S'il est défini sur une liste d'hôtes séparés par des espaces, ces hôtes sont approuvés.
Sinon, la confiance dépend du certificat présenté par le serveur.
mail.pop3.ssl.socketFactoryUsine de sockets SSLSi elle est définie sur une classe qui étend la classe javax.net.ssl.SSLSocketFactory, cette classe sera utilisée pour créer des sockets SSL POP3.
mail.pop3.ssl.socketFactory.class ChaîneS'il est défini, spécifie le nom d'une classe qui étend la classe javax.net.ssl.SSLSocketFactory. Cette classe sera utilisée pour créer des sockets SSL POP3.
mail.pop3.ssl.socketFactory.port intSpécifie le port auquel se connecter lors de l'utilisation de la fabrique de sockets spécifiée. S'il n'est pas défini, le port par défaut sera utilisé.
mail.pop3.ssl.protocolschaîneSpécifie les protocoles SSL qui seront activés pour les connexions SSL. La valeur de la propriété est une liste séparée par des espaces de jetons acceptables pour la méthode javax.net.ssl.SSLSocket.setEnabledProtocols.
mail.pop3.starttls.enable booléenSi la valeur est true, active l'utilisation de la commande STLS (si prise en charge par le serveur) pour basculer la connexion vers une connexion protégée par TLS avant d'émettre des commandes de connexion. La valeur par défaut est false.
mail.pop3.starttls.required booléenSi vrai, nécessite l'utilisation de la commande STLS. Si le serveur ne prend pas en charge la commande STLS ou si la commande échoue, la méthode de connexion échouera. La valeur par défaut est false.
mail.pop3.socks.hostchaîneSpécifie le nom d'hôte d'un serveur proxy SOCKS5 qui sera utilisé pour les connexions au serveur de messagerie.
mail.pop3.socks.port chaîneSpécifie le numéro de port du serveur proxy SOCKS5.
mail.pop3.disabletop booléenSi elle est définie sur true, la commande POP3 TOP ne sera pas utilisée pour récupérer les en-têtes de message. La valeur par défaut est false.
mail.pop3.forgettopheadersbooléenS'il est défini sur true, les en-têtes qui auraient pu être récupérés à l'aide de la commande POP3 TOP seront oubliés et remplacés par les en-têtes récupérés dans le cadre de la commande POP3 RETR. La valeur par défaut est false.
mail.pop3.filecache.enablebooléenS'il est défini sur true, le fournisseur POP3 mettra en cache les données des messages dans un fichier temporaire plutôt qu'en mémoire. Les messages ne sont ajoutés au cache que lors de l'accès au contenu du message. Les en-têtes de message sont toujours mis en cache en mémoire (à la demande). Le cache de fichiers est supprimé lorsque le dossier est fermé ou que la machine virtuelle Java s'arrête. La valeur par défaut est false.
mail.pop3.filecache.dir ChaîneSi le cache de fichiers est activé, cette propriété peut être utilisée pour remplacer le répertoire par défaut utilisé par le JDK pour les fichiers temporaires.
mail.pop3.cachewriteto booléenContrôle le comportement de la méthode writeTo sur un objet de message POP3. Si la valeur est true et que le contenu du message n'a pas encore été mis en cache, et ignoreList est null, le message est mis en cache avant d'être écrit. Sinon, le message est diffusé directement dans le flux de sortie sans être mis en cache. La valeur par défaut est false.
mail.pop3.keepmessagecontentbooléenSi cette propriété est définie sur true, une référence matérielle au contenu mis en cache sera conservée, empêchant la mémoire d'être réutilisée jusqu'à ce que le dossier soit fermé ou que le contenu mis en cache soit explicitement invalidé (à l'aide de la méthode invalidate). La valeur par défaut est false.

En général, les applications ne doivent pas utiliser directement les classes de ce package. Ils devraient plutôt utiliser les API définies par javax.mail package (et sous - paquets). Les applications ne doivent jamais construire directement des instances de POP3Store ou POP3Folder . Au lieu de cela, ils doivent utiliser la méthode de session getStore pour acquérir un objet Store approprié et à partir de là acquérir des objets Folder.

Des exemples d'utilisation du serveur POP3 sont présentés dans le chapitre Vérifier les e-mails .