Afin d'implémenter ces 4 étapes, nous allons utiliser le module
Net::IMAP::Simple. Ce module va nous permettre en fait de faire l'intermédiaire entre notre programme et le serveur avec lequel nous souhaitons communiquer.
Je vous propose de regarder immédiatement les quelques méthodes et fonctions qui nous serviront par la suite.
new() : instancier un objet
Le module
Net::IMAP::Simple est un module orienté objet. Cette méthode lui sert donc de constructeur.
Cette méthode peut prendre plusieurs paramètres :
- le serveur auquel on souhaite se connecter ;
- le numéro du port auquel on souhaite se connecter ;
- le mode débogage ;
- durée limite pour établir la connexion.
login() : s'identifier
C'est grâce à cette fonction que l'on s'identifie auprès du serveur. Elle prend généralement 2 paramètres à savoir le nom d'utilisateur et un mot de passe. Contrairement à la même méthode du module
Net::POP3, ici, le nombre d'e-mails n'est pas renvoyé de par l'architecture du protocole
IMAP (possibilité d'avoir plusieurs boites au sein d'une adresse électronique).
select() : sélectionner une boite
Cette méthode permet de sélectionner la boite auquel on souhaite accéder. Le nom est passé en paramètre. Elle renvoie alors le nombre de messages présents dans la boite sélectionnée.
list() : lister les messages
Cette fonction fonctionne exactement comme celle du module
Net::POP3.
Sans argument, cette méthode renvoie une référence à un hachage dont les clefs sont les numéros des messages sur le serveur, et les valeurs représentent la taille en octets du message.
Appelée avec un numéro de message en argument, cette méthode renvoie la taille du message en octets.
top() : obtenir l'en-tête d'un message
Tout comme la fonction du même nom du module
Net::POP3, cette méthode permet de récupérer l'en-tête du message dont le numéro est passé en paramètre.
Grâce à cette fonction, il est également possible de récupérer les premières lignes d'un message. Pour ce faire, il suffit d'ajouter un second paramètre correspondant au nombre de ligne que l'on souhaite récupérer.
Quelque soit le nombre de paramètre, cette méthode renvoie le texte demandé sous la forme d'une référence à un tableau.
get() : obtenir le contenu d'un message
Cette méthode permet de récupérer le texte (en-tête et corps) du message dont le numéro est passé en paramètre. Le texte du message est alors renvoyé.
Il est également possible d'indiquer un descripteur de fichier comme second paramètre. Les lignes seront alors directement écrites dans le fichier.
seen() : connaître le statut d'un e-mail
Cette méthode permet de savoir si un message est marqué comme "lu" ou "non-lu". Le numéro du message dont on souhaite connaître le statut est passé en paramètre.
Un booléen est alors renvoyé. Dans le cas d'un message "lu", c'est la valeur vrai est renvoyée. Si un message est marqué comme "non-lu", c'est la valeur "faux" qui est renvoyée.
delete() : supprimer un message
Cette méthode permet de marquer le message dont le numéro est passé en paramètre comme étant à effacer. La suppression des messages marqués s'effectue seulement si la connexion avec le serveur est fermée proprement.
reset() : remettre le serveur en état
Cette méthode permet de remettre le serveur dans l'état où il se trouvait au moment de notre connexion. Cette méthode est très utile si l'on veut supprimer les marqueurs de suppressions attribués à certains messages via la méthode
delete()
. Cette fonction ne prend pas de paramètre.
quit() : se déconnecter du serveur
Cette fonction permet de fermer proprement la connexion avec le serveur. Elle ne prend pas de paramètre.
mailboxes() : lister les boites
Sans paramètre, cette fonction permet de lister les boites présentes sur votre adresse électronique. Elle renvoie alors un tableau dans lequel le nom de chaque boite est la valeur d'une case du tableau.
create_mailbox() : créer une nouvelle boite
Cette fonction permet de créer une nouvelle boite sur votre adresse e-mail. Le nom de la boite à créer est à faire passer en paramètre. Cette fonction retourne vrai si la création a pu se faire, faux sinon.
rename_mailbox() : renommer une boite
Grâce à cette fonction, il est possible de renommer une boite existants. La syntaxe des paramètres est un peu particulière. L'ancien nom est suivi du symbole "=>" lui même suivi du nouveau nom.
Code : Perl | $imap->rename_mailbox('ancien_nom' => 'nouveau_nom');
|
Elle renvoie vrai en cas de succès, faux sinon.
delete_mailbox() : supprimer une boite
Cette fonction permet de supprimer une boite de votre adresse électronique. Elle prend en paramètre le nom de la boite à supprimer. Comme les dernières fonctions vues, elle renvoie vrai en cas de succès, faux sinon.