Récupérer un message électronique sur un serveur POP3

Problème

Vous souhaitez collecter le courrier électronique en vous connectant à un serveur POP3.

Solution

Utilisez la recette "Créer un client TCP/IP" du chapitre "Réseau" et communiquer avec le serveur POP3, habituellement via le port 110, selon le protocole défini par la RFC 1939. Obtenez le nombre de messages avec la commande STAT, puis chaque message avec RETR n, et de façon optionnelle, supprimez les messages avec DELE n.

Discussion

Le protocole POP3 est au format texte et fonctionne sur le schéma suivant : une commande est d’abord envoyée au serveur, qui répond une ligne commençant par la lettre + suivi de l’état, qui est de préférence OK, et d’un texte éventuel. Puis viennent, si la commande le nécessite, des données sous forme de lignes consécutives, dont les derniers caractères sont \r\n.\r\n. Le programme suivant va donc demander le nombre de messages disponibles sur le serveur, et, pour chaque message, lire son contenu grâce à la commande RETR n. Nous choisissons de les stocker dans un fichier en respectant le format maildir (voir la recette "Rechercher et lire un courrier dans une boîte au format maildir" à ce sujet).

Voici une connexion sur un serveur POP3 avec telnet pour illustrer une connexion permettant de collecter les messages électroniques. Nous avons ajouté...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Envoyer un courrier électronique
Suivant
Récupérer un message électronique sur un serveur IMAP