Intro Editorial A Propos Sommaire Quizz Musiques Archives
Obligement


Labo : Telnet et e-mail par Arnaud Danassié



Vous ne le savez peut-être pas, mais si vous utilisez YAM, vous êtes des veinards : non seulement les virus de type "vers outlook" vous laissent de marbre (et vous ne polluez pas la boite aux lettres de vos contacts) mais en plus vous pouvez effacer vos mails directement sur le serveur ;-) Les pauvres windaubistes abreuvés à l'Outlouk sont généralement condamnés à utiliser Telnet pour ce genre d'opérations alors qu'il leur suffirait de désinstaller le bestiaud et d'installer un vrai mailer digne de ce nom (Pegasus Mail ou Eudora Pro par exemple).

Telnet CéKoiDonc ?

Telnet est tout simplement l'un des moyens d'envoyer des commandes sur une machine distante. Typiquement, cela peut être des commandes shell (Unix, Linux, etc.) ou si l'on s'adresse à un port particulier (21 pour le FTP, 110 pour le POP, etc.) à envoyer des commandes à un serveur pour lui faire exécuter telles ou telles opérations (relever un email, effacer un fichier en FTP, etc..).

Dans cet article, nous vous expliquerons comment lire ou effacer vos emails sur votre POP. C'est ni plus ni moins les commandes que YAM ou Simplemail envoient à votre serveur POP (bravo, vous venez de mettre les mains dans le cambouis).

Ceci pourra toujours vous servir que vous ayez un Amiga, un Mac, un PDA, une grosse station Sun en passant par n'importe quel PC sous Windows ou Linux... Sur Amiga "classic" nous avons des clients Telnet corrects (MiamiTelnet fourni avec MiamiDX, AmTelnetII, DCTelnet, etc.) mais parfois un peu limités en version démo notamment pour faire du SSH (connexion telnet sécurisée).

N'oublions pas qu'aux origines, Arpanet, l'un des ancètres de l'internet actuel, a été justement conçu (par les militaires américains et rapidement par les universitaires de l'époque post-soixante huitarde) de manière à pouvoir reposer sur des machines et des OS complètement hétérogènes (tout le contraire de la politique Wintel qui verrouille l'information par tous les moyens possibles et cherche à imposer son matériel et son logiciel propriétaire).

Cette politique d'ouverture et de partage du savoir est justement l'un des piliers qui a permis au net de supporter le nombre d'utilisateurs en croissance exponentielle ces dernières années et toujours plus gourmands en bande-passante... (et les abus genre spam, virus "pour neuneus", etc... n'arrangent rien bien évidemment).

RFC KesKeCestCeTruc ?

RFC pour Request For Comments ou l'une clé du monde libre. Très simplement, c'est la documentation (en Anglais) qui décrit les normes et protocoles (règles de communications) utilisés par Internet : les premiers RFC datent de 1969... Comme quoi les NTIC ne sont plus "nouvelles" puisque certaines ont plus de 30 ans ! Le RFC N°959 par exemple décrit le File Transfert Protocol (FTP) en long et en large, etc.

Tout programmeur potentiel de mailer, client ou serveur FTP, etc. y trouve toutes les informations de base en texte (ou RTF, etc.) pour savoir ce qu'il peut implanter dans son programme. C'est l'accès à cette masse de documentation qui permet aujourd'hui à des OS complétement différents d'avoir des utilitaires qui communiquent entre eux sans trop de problèmes puisque les protocoles sont communs ! Le format d'image PNG (prononcez "ping") est décrit dans la RFC N°2083 par exemple.

Ci-dessous un ou deux URLs "fiables" où consulter des RFC :

http://www.rfc-editor.org par exemple ou http://www.rfc-editeur.org pour la VF des principaux RFCs (merci à Nicolas Jourdan et aux autres traducteurs).

Le RFC qui nous intéresse pour relever nos mails est donc le N°1939 (POP3) mais on pourrait aussi utiliser le RFC N°2060 (IMAP) encore plus puissant (pratique pour classer vos mails directement sur le serveur) ou on pourrait lire le RFC N°821 (SMTP, voir aussi le 2821) pour savoir comment envoyer un email en telnet ;) Le protocole Telnet en lui même est aussi décrit dans le RFC N°854 !

Procédure pour relever un email via telnet (Pop)

Nous utiliserons un compte email Free fictif (en fait ce compte est cloturé, inutile d'essayer de lire des mails sur ce compte donc ;-) C'est le même principe quelque soit votre provider !

Login : artbas password: string pop.free.fr (port 110) Sous Linux ou un shell, un simple "telnet pop.free.fr:110" suffit pour se connecter sur le pop de Free. Si vous utilisez un client graphique (voir grab), il faudra renseigner les quelques champs demandés.

La lecture du RFC 1939 nous donne donc quelques commandes utilisables sur un POP.

- USER et PASS servent à s'identifier sur le serveur POP.

- STAT renvoie le nombre de mails et le nombre d'octets qu'ils occupent sur le serveur.

- LIST renvoie les numéros d'emails et leurs tailles en octets.

- RETR n affiche le mail numéro "n" à l'écran (RETR 7 par exemple).

- DELE n marque le message pour l'effacement (DELE 3 par exemple, il ne sera en fait réellement effacé qu'à la cloture de la session avec la commande QUIT).

- TOP n x affiche les entêtes du mail numéro n et les x premières lignes du mail en question (exemple : TOP 2 0 pour avoir l'entête du mail N°2 ou TOP 27 10 pour avoir les 10 premières lignes du mail N°27).

- QUIT sert à se déconnecter proprement du pop.

Exemple d'une session telnet classique (commentée).

Les lignes commencant par S: représentent les messages du serveur. Celles commencant par C: sont celles du client telnet (ce que vous tapez "à l'aveugle" donc). Les messages de confirmations (+OK) ou d'erreurs (-ERR) sont généralement suivi d'un message d'explication qui varie suivant les serveurs...

telnet pop.free.fr 110

S: +OK <12595.1039292011@pop2-1.free.fr>

Ok on est connecté sur le pop de Free

C: USER artbas
S: +OK
C: PASS string
S: +OK

On est loggué sous le compte artbas

C: STAT
S: +OK 5 405560

Il y a 5 messages en attente pour le compte artbas@free.fr pour un total de 405 560 octets.

C: LIST
S: +OK
S: 1 3499
S: 2 2205
S: 3 3528
S: 4 36612
S: 5 359716
S: .

On a donc cinq mails numérotés de 1 à 5 avec leurs tailles respectives.

C: TOP 2 10

Nous renvoie l'entête du mail N°2 et les dix premières lignes.

C: RETR 2

Nous renvoie tous le mail N°2 (entête et corps du mail).

C: DELE 3
S: +OK
Marque le message numéro 3 pour l'effacer.

C: DELE 6
S: -ERR

Le serveur nous renvoie une erreur car il n'y a pas de message N°6.

C: QUIT

Et on quitte proprement le pop de Free (déconnexion).

Envoi de mails via telnet (smtp.free.fr, port 25)

On peut aussi envoyer des mails via telnet... Ci dessous l'exemple d'une session minimale côté client (chaque ligne se termine par entrée).

telnet smtp.free.fr:25

EHLO artbas

(ou l'ancienne notation HELO artbas toujours valable : on signale ainsi au SMTP qui on est).

MAIL FROM:artbas@free.fr
RCPT TO:obligement@free.fr

On précise l'expéditeur et le destinataire.

DATA
salut Daff
un petit exemple de mail
bidon pour te dire qu'Edmond
le Mouton code comme un mouflon
.

On saisit le corps du mail. Le point final suivi d'un retour ligne sert à signaler la fin du corps du message (texte du message). Le serveur renvoie un message du type "+OK queued xxxyyy" pour signaler l'envoi du mail. Rien de bien sorcier ;-D

Les petits malins se servent de telnet pour forger un e-mail (en mettant MAIL FROM:bill@microsoft.com ou un autre e-mail bidon par exemple) : honte à eux... Ils devraient bien se douter que cette technique archaïque ne suffit pas elle seule à masquer leur identité et qu'avec un peu de temps on peut retrouver leur identité réelle (je vous renvoie sur le site de la CNIL et sur les sites de chasse anti-spammers comme spamcop, antispam.net, etc.).


En espérant que ces quelques exemples auront servis à quelques uns d'entre vous pour tester les possibilités de telnet.

Bonus : RFCs à consulter les jours de pluie : RFC N°1149 et 2549.