Chapitre 16. Courrier électronique

Le courrier électronique est l'un des services les plus utilisés sur Internet. Red Hat Linux vous offre de nombreuses façons d'utiliser le courrier électronique, que vous soyez un utilisateur de bureau ou un administrateur système.

Ce chapitre traite des protocoles de courrier électronique couramment utilisés aujourd'hui et des divers programmes conçus pour accomplir des tâches variées relatives à la messagerie électronique.

Protocoles

Le courrier électronique, tout comme d'autres services réseau, fait appel à une panoplie de protocoles. Ceux-ci permettent à des ordinateurs différents, exécutant souvent des systèmes d'exploitation et des programmes de messagerie électronique différents, de communiquer entre eux et de transférer le courrier de façon à ce qu'il arrive à destination.

Les protocoles suivants sont les plus fréquemment utilisés pour le transfert de courrier électronique entre systèmes.

IMAP

Le protocole IMAP (Internet Message Access Protocol) est une méthode utilisée par des applications client de messagerie pour accéder à distance à des messages stockés. Lorsque l'on utilise IMAP, souvent appelé IMAP4 en raison de la version utilisée, les messages électroniques restent sur le serveur distant, où les utilisateurs peuvent les lire ou les supprimer, de même que créer, renommer ou supprimer des boîtes aux lettres pour stocker du courrier.

En outre, IMAP est compatible à 100 % avec d'importantes normes de messagerie Internet, telles que MIME (Multipurpose Internet Mail Extensions) pour permettre l'envoi de fichiers joints. De nombreux clients de messagerie électronique utilisant IMAP peuvent aussi être configurés pour mettre en cache une copie des messages localement, de sorte qu'il soit possible de parcourir les messages lus précédemment sans être directement connecté au serveur IMAP.

IMAP est surtout utilisé par les utilisateurs qui veulent pouvoir avoir accès à leur courrier électronique depuis différents ordinateurs, étant donné que les messages sont stockés dans un emplacement centralisé et sont accessibles depuis tout système muni d'un client de messagerie IMAP et d'une connexion au serveur IMAP distant. De plus, les utilisateurs qui se branchent à Internet ou à un réseau privé via une connexion bas débit utilisent souvent IMAP car seule l'information d'en-tête du message est d'abord récupérée. Cela leur permet de remettre le téléchargement de messages accompagnés de pièces jointes de grande taille à un moment où leur connexion limitée est moins utilisée. Cette méthode permet aussi de supprimer des messages non désirés sans voir leur corps de message et, par conséquent, sans devoir les télécharger via la connexion réseau.

Les documents RFC (Request for Comment) qui couvrent IMAP contiennent des détails et éclaircissements sur le fonctionnement de ce protocole. RFC-1730 a d'abord défini la façon d'utilisation d'IMAP de la version 4, mais RFC-2060 traite des mises en application du protocole IMAP actuel, utilisé avec de nombreux serveurs IMAP, appelé IMAP4rev1.

Le paquetage imap dans Red Hat Linux permet aux utilisateurs de se connecter à votre système et de recevoir leur courrier à l'aide d'IMAP. Des connexions IMAP sécurisées sont prises en charge au moyen de la technologie SSL (Secure Socket Layer) construite dans le démon imapd, qui permet d'utiliser le fichier de certificat /usr/share/ssl/certs/imapd.pem. Le programme stunnel n'est pas requis pour offrir un cryptage SSL aux connexions IMAP, bien qu'il puisse être utilisé. Reportez-vous à la la section intitulée Serveurs de messagerie sécurisés pour en savoir plus sur ces deux options de cryptage.

D'autres clients IMAP, gratuits ou commerciaux, sont aussi disponibles, plusieurs desquels offrent d'ailleurs des fonctionnalités supplémentaires par rapport à IMAP. Vous trouverez une liste exhaustive à l'adresse http://www.imap.org/products/longlist.htm.

POP

Le protocole POP (Post Office Protocol) permet aux clients de messagerie de retirer du courrier depuis des serveurs distants et de l'enregistrer sur leur ordinateur local. La plupart des clients de messagerie POP sont configurés automatiquement pour supprimer les messages sur le serveur de messagerie une fois qu'ils ont été transférés sur le système client, mais cela peut être modifié.

Pour se connecter à un serveur POP, le client de messagerie ouvre une connexion TCP au port 110 sur le serveur. Lorsque la connexion est effectuée, le serveur POP envoie un message de bienvenue au client POP, après quoi les deux ordinateurs s'envoient des commandes et des réponses spécifiées par le protocole. Dans le cadre de cette communication, le client POP doit effectuer l'authentification dans Authentication State, où le nom d'utilisateur et le mot de passe sont envoyés au serveur POP. Si l'authentification réussit, alors le client POP passe à Transaction State, où il est possible d'utiliser des commandes, telles que LIST, RETR et DELE pour afficher la liste, télécharger et supprimer des messages depuis le serveur. Les messages supprimés directement depuis le serveur ne sont pas retirés du serveur tant que le client n'a pas envoyé la commande QUIT pour terminer la session. A ce stade, le serveur POP entre dans Update State, où il supprime les messages indiqués pour la suppression et nettoie toute ressource résiduelle de cette session.

POP est un protocole beaucoup plus simple qu'IMAP car il nécessite l'envoi d'un moins grand nombre de commandes entre le client et le serveur. POP est aussi un peu plus utilisé, bien que la plupart des principaux clients de messagerie puissent utiliser l'un ou l'autre des deux protocoles sans problème.

La plupart des utilisateurs de POP n'utilisent qu'un système pour lire leur courrier et téléchargent leurs messages sur cet ordinateur pour les stocker. POP fonctionne très bien également si vous n'avez pas une connexion continue à Internet ou au réseau sur lequel se trouve votre serveur de messagerie, quoique IMAP puisse maintenant être configuré pour stocker des messages localement pour vous permettre de les lire lorsque vous n'êtes pas connecté.

De nombreux documents RFC traitent du protocole POP, mais RFC-1939 définit les bases de POP3, la version actuelle.

Vous pourriez, à l'occasion, rencontrer des variantes moins utilisées du protocole POP :

  • APOP — POP3 avec authentification MDS, où une portion codée de votre mot de passe est envoyée du client de messagerie au serveur plutôt que de l'envoyer en texte en clair.

  • KPOP — POP3 avec authentification Kerberos. Reportez-vous au Chapitre 8 pour avoir plus d'informations sur l'authentification Kerberos.

  • RPOP — POP3 avec authentification RPOP, qui utilise un identificateur (ID) publié pour chaque utilisateur, semblable à un mot de passe, pour identifier les requêtes POP. Cependant, cet ID n'est pas crypté, donc RPOP n'est pas plus sécurisé que le POP standard.

De nombreux serveurs, clients et autres applications variées POP sont disponibles sous Red Hat Linux. Si vous préférez un client de messagerie graphique, Mozilla Mail est un excellent choix. De plus, d'autres utilitaires de courrier électronique, tels que Fetchmail, peuvent récupérer des messages via le protocole POP. Si vous utilisez votre système Red Hat Linux en tant que serveur de messagerie, le paquetage imap contient les démons POP2 (ipop2) et POP3 (ipop3) dans le répertoire /usr/sbin.

SMTP

Alors que les protocoles IMAP et POP permettent aux utilisateurs de recevoir et lire leur courrier électronique, le protocole SMTP (Simple Mail Transfer Protocol) est utilisé pour envoyer du courrier. Les messages sortant font appel à SMTP pour passer de l'ordinateur client à l'ordinateur serveur, d'où ils partent pour leur destination finale. Autrement, deux serveurs de messagerie essaient de transférer un message entre eux à l'aide de SMTP de façon à ce qu'ils puissent communiquer, même s'il s'agit de deux plates-formes complètement différentes.

SMTP utilise le port 25 sur le serveur pour ses communications. Un échange SMTP de base se déroule comme suit : le système qui se connecte (1) émet une commande MAIL From: <adresse_électronique> pour commencer l'échange ; le système qui reçoit (2) le message répond par un message 250 pour accuser réception de la première commande. Ensuite, le système 1 transmet les adresses électroniques de destination au système 2, suivies d'un message DATA. Cela indique au système 2 que la prochaine partie de la communication sera le corps de message. Lorsque le système 1 a terminé de traiter le message électronique, il place un point (.) sur une ligne. A ce stade, le message est considéré comme envoyé.

SMTP prend également en charge des cas nécessitant le réacheminement de messages entre systèmes, lorsque le système qui reçoit sait où envoyer le message. Le protocole peut s'assurer que certains utilisateurs sont servis par un serveur précis (commande VRFY) ou ouvrir une liste d'adresses (commande EXPN). Le courrier électronique peut aussi être retransmis entre deux serveurs SMTP, si les deux systèmes autorisent ce genre de pratique.

Contrairement à IMAP et POP, SMTP ne nécessite aucune authentification sous sa forme de base absolue. Cela encourage malheureusement le pollupostage (spam), étant donné qu'un utilisateur non local pourrait utiliser votre système pour envoyer ou retransmettre des messages à des listes entières de participants, donc utiliser les ressources et la bande passante de votre système pour envoyer des spams. Les applications SMTP modernes ont fait des pas de géant pour minimiser ces situations en limitant la retransmission et en n'autorisant que les hôtes connus à envoyer du courrier électronique.

Le document RFC-821 souligne le comportement de base de SMTP, mais de nombreuses extensions SMTP, rendues possibles par RFC-1869, ont ajouté des fonctionnalités supplémentaires à SMTP avec les années et de nouvelles commandes. Si vous commencez une communication avec un serveur SMTP à l'aide de la commande EHLO au lieu de la commande HELO, le serveur qui se connecte peut s'identifier en tant que serveur prenant en charge les extensions SMTP. Le serveur qui reçoit répond alors par une ligne 250 qui contient les diverses extensions SMTP prises en charge. Puis, le serveur qui se connecte peut utiliser les extensions prises en charge à sa guise pour atteindre les objectifs de la communication.

Une des extensions notables concerne l'ajout de l'authentification SMTP par le biais de la commande AUTH, tel qu'indiqué dans RFC-2554. Une autre extension SMTP très utilisée est décrite dans RFC-2034, qui traite de l'utilisation de codes d'erreur normalisés et séparés par des points entre les applications SMTP. Les divers documents RFC sur SMTP fournissent un bon aperçu de la façon dont les messages électroniques se déplacent sur Internet. De plus, vous pouvez vous connecter à un serveur SMTP via Telnet en spécifiant le port 25, tel que telnet hôte_local 25. L'une des meilleures façons d'apprendre le fonctionnement des communications SMTP est d'exécuter quelques commandes et d'envoyer des messages électroniques manuellement.

Red Hat Linux utilise Sendmail comme programme SMTP par défaut, bien que d'autres applications, avec les mêmes fonctionnalités et plus simples à utiliser, telles que Postfix, soient disponibles. De nombreuses applications client de messagerie se connectent directement à un serveur SMTP pour envoyer des messages, quoique vous puissiez configurer un service SMTP à exécution locale qui envoie le courrier à votre place, directement à la destination finale ou bien à un serveur central qui le réachemine par la suite.