La naissance du courrier électronique (ou email) remonte au début des années 1960. La boîte à lettres était un fichier dans le répertoire personnel d'un utilisateur que seul ce dernier pouvait lire. Les application de courrier primitives ajoutaient des nouveaux messages de texte bas du fichier et l'utilisateur devait parcourir tout le fichier qui ne cessait de grandir afin de retrouver un message particulier. Ce système ne pouvait envoyer des messages qu'aux utilisateurs du système.
Le premier transfert réseau réel d'un courrier électronique eu lieu en 1971 lorsqu'un ingénieur informatique du nom de Ray Tomlinson envoya un message test entre deux ordinateurs via ARPANET — le précurseur de l'Internet. La communication par email devint rapidement très populaire, représentant 75 pour cent du trafic d'ARPANET en moins de deux ans.
Au fil du temps, les systèmes de courrier électronique basés sur des protocoles réseau standardisés ont évolués de telle manière qu'ils font partie de nos jours, des services les plus couramment utilisés sur l'Internet. Red Hat Linux offre de nombreuses applications avancées pour servir et accéder aux emails.
Ce chapitre examine d'une part les protocoles de courrier électronique utilisés à l'heure actuelle et d'autre part, certains des programmes de messagerie électroniques conçus pour envoyer et recevoir des emails.
De nos jours, le courrier électronique délivré à l'aide d'une architecture client/serveur. Un message électronique est créé au moyen d'un programme client de messagerie électronique. Ce programme envoie ensuite le message à un serveur. Ce dernier transmet alors à son tour le message au serveur email du destinataire où il est fournit au client email du destinataire final.
Afin de rendre ce processus possible, une vaste gamme de protocoles réseau standard permettent à différents ordinateurs exécutant souvent différents systèmes d'exploitation et utilisant des programmes de messagerie électroniques différents, d'envoyer et de recevoir des emails.
Les protocoles suivants traités dans ce chapitre sont sont ceux le plus fréquemment utilisés pour le transfert de courrier électronique entre systèmes.
La délivrance de courrier d'une application cliente au serveur et d'un serveur d'origine à un serveur de destination est traitée par le protocole nommé 'Simple Mail Transfer Protocol' (ou SMTP) .
L'objectif primaire de SMTP consiste à transférer le courrier électronique entre les serveurs de messagerie. Toutefois, il est également très important pour les clients de messagerie. Afin d'envoyer un email, le client envoie le message électronique à un serveur de messagerie sortant , qui à son tour contacte le serveur de messagerie de destination pour la délivrance du message. Dans de telles circonstances, il est nécessaire de spécifier un serveur SMTP lors de la configuraton d'un client email.
Sous Red Hat Linux, un utilisateur peut configurer un serveur SMTP sur l'ordinateur local afin qu'il traite la délivrance du courrier. Toutefois, il est également possible de configurer des serveurs SMTP distant pour le courrier sortant.
Il est important de noter ici que le protocole SMTP n'a pas besoin d'authentification pour fonctionner. Ainsi, toute personne utilisant l'Internet peut envoyer des emails à toute autre personne ou même à de vastes groupes de personnes. C'est cette caractéristique de SMTP qui permet l'envoi de pourriel ('junk email') ou de spam. Les serveurs SMTP modernes essaient néanmoins de minimiser ce comportement en n'autorisant que les hôtes connus à accéder au serveur SMTP. Les serveurs n'imposant pas ce genre de restriction sont appelés serveurs open relay.
Red Hat Linux utilise Sendmail (/usr/sbin/sendmail) comme programme SMTP par défaut. Néanmoins, une application de serveur de messagerie plus simple appelée Postfix (/usr/sbin/postfix) est également disponible.
Pour obtenir le courrier électronique stocké sur les serveurs de messagerie, les applications client de messagerie utilisent deux protocoles primaires: 'Post Office Protocol' (ou POP) et 'Internet Message Access Protocol' (ou IMAP).
Contrairement à SMTP, ces deux protocoles exigent que les clients se connectant s'authentifie au moyen d'un nom d'utilisateur et d'un mot de passe. Par défaut, les mots de passe pour les deux protocoles sont transmis à travers le réseau de manière non-cryptée.
Sous Red Hat Linux, /usr/sbin/ipop3d est le serveur POP par défaut et est inclus dans le paquetage imap. Lors de l'utilisation d'un serveur POP, le courrier électronique est téléchargé par des applications client de messagerie. Par défaut, la plupart des clients de messagerie POP sont configurés automatiquement pour supprimer les messages sur le serveur une fois le transfert effectué; néanmoins, cette configuration peut souvent être modifiée.
Le protocole POP est compatible à 100 % avec d'importantes normes de messagerie Internet, comme par exemple 'Multipurpose Internet Mail Extensions' (ou MIME), qui permet l'envoi de fichiers joints.
Le protocole POP est le plus approprié pour les utilisateurs disposant d'un système sur lequel ils peuvent lire leurs courrier électronique. Il fonctionne également bien pour utilisateurs n'ayant pas une connexion continue à l'Internet ou au réseau sur lequel se trouve le serveur de messagerie. Malheureusement, les utilisateurs ayant des connexions réseau lentes, POP requiert que les programmes client, après authentification, téléchargent la totalité du contenu de chaque message. Cette opération peut être longue si certains messages contiennent des fichiers joints.
La version la plus courante du protocole POP standard est POP3.
Il existe néanmoins de nombreuses variantes moins utilisées du protocole POP:
APOP — POP3 avec authentification MDS. Une portion codée du mot de passe de l'utilisateur est envoyée du client de messagerie au serveur plutôt que d'envoyer le mot de passe sous forme non-cryptée.
KPOP — POP3 avec authentification Kerberos. Reportez-vous au Chapter 17 Kerberos pour obtenir 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, étant donné que cet ID n'est pas crypté, RPOP n'est pas plus sécurisé que le POP standard.
Pour une sécurité accrue, il est possible d'utiliser le cryptage 'Secure Socket Layer' (SSL) pour l'authentification des clients et pour les sessions de transfert de données. Cette fonctionnalité peut être activée en utilisant le service ipop3s ou le programme /usr/sbin/stunnel. Reportez-vous à Section 11.5.1 Établissement d'une communication sécurisée pour de plus amples informations.
Sous Red Hat Linux, /usr/sbin/imapd est le serveur IMAP par défaut, fourni par le paquetage imap. Lors de l'utilisation d'un serveur de messagerie IMAP, le courrier électronique reste sur le serveur où les utilisateurs peuvent lire et supprimer les emails. IMAP permet également aux applications client de créer, renommer ou supprimer des répertoires de messagerie sur le serveur afin d'organiser ou de stocker le courrier électronique.
Le protocole IMAP est utile tout particulièrement pour les utilisateurs accédant à leur courrier électronique au moyen d'ordinateurs multiples. Ce protocole est également pratique pour les utilisateurs se connectant au serveur de messagerie par le biais d'une connexion lente, car seule l'information d'en-tête du message est téléchargée jusqu'à ce qu'il soit ouvert, économisant ainsi de la largeur de bande. En outre, l'utilisateur peut également supprimer des messages sans devoir les lire ou les télécharger.
Par commodité, les applications IMAP client peuvent mettre en cache localement des copies des messages afin que l'utilisateur puissent naviguer parmi des messages déjà lus même lorsqu'il n'est pas directement connecté au serveur IMAP.
IMAP, tout comme POP est compatible à 100 % avec d'importantes normes de messagerie Internet, telles que MIME (Multipurpose Internet Mail Extensions) pour permettre l'envoi de fichiers joints.
Pour une sécurité accrue, il est possible d'utiliser le cryptage SSL pour l'authentification des clients et pour les sessions de transfert de données. Cette fonctionnalité peut être activée en utilisant le service imaps ou le programme /usr/sbin/stunnel Reportez-vous à Section 11.5.1 Établissement d'une communication sécurisée pour de plus amples informations.
D'autres clients et serveurs IMAP libres et commerciaux sont disponibles; un certain nombre d'entre eux développent encore plus les possibilités du protocole IMAP et fournissent des fonctionnalités supplémentaires. Une liste compréhensive de ces derniers est disponible en ligne à http://www.imap.org/products/longlist.htm.