Courrier distant et protocole de courrier distantBeaucoup d'utilisateurs de Linux sont connectés à Internet via un fournisseur
d'accès Internet (FAI) et ne possèdent pas leur propre domaine. À la
place, ils ont un compte sur une machine de leur FAI. Leurs courriers
électroniques sont distribués dans une boîte aux lettres sur cette même machine.
Cependant, généralement ces utilisateurs veulent lire et répondre à leurs
courriers en utilisant leur propre machine qui est connecté à leur FAI de
manière intermittente en utilisant SLIP ou PPP. Linux permet d'utiliser
des protocoles de courrier distant qui permettent cela.Remarquez comme ceci est différent du scénario que nous avons discuté dans la
première partie. Le courrier était placé dans une file en attendant
d'être envoyé, alors que dans le cas que nous venons de voir, le courrier est
envoyé directement dans une boîte aux lettres sur un serveur. Le courrier dans
une file n'est pas considéré comme ayant été distribué et peut expirer tandis
que le courrier distribué dans la boîte aux lettres du serveur de courrier
d'un FAI est considéré comme distribué et peut rester bloqué sur ce serveur
indéfiniment.Un protocole de courrier distant permet au courrier sur un serveur d'être
récupéré au travers d'un lien réseau par un programme client (c'est le contraire
d'une distribution normale au cours de laquelle un agent de transport envoie
lui-même le courrier vers un autre agent de transport). Il existe deux
protocoles communément utilisés de courrier à distance définis par les standards
Internet : POP3 () et IMAP (). Tous les FAI permettent
d'utiliser POP3 et un nombre croissant permet également IMAP
(qui est plus puissant).Voilà à quoi ressemble une session POP3 : S: <le client se connecte au port de service 110>
R: +OK POP3 server ready <1896.697170952@mailgate.dobbs.org>
S: USER bob
R: +OK bob
S: PASS redqueen
R: +OK bob's maildrop has 2 messages (320 octets)
S: STAT
R: +OK 2 320
S: LIST
R: +OK 2 messages (320 octets)
R: 1 120
R: 2 200
R: .
S: RETR 1
R: +OK 120 octets
R: <le serveur POP3 envoie le message 1>
R: .
S: DELE 1
R: +OK message 1 deleted
S: RETR 2
R: +OK 200 octets
R: <le serveur POP3 envoie le message 2>
R: .
S: DELE 2
R: +OK message 2 deleted
S: QUIT
R: +OK dewey POP3 server signing off (maildrop empty)
S: <le client se déconnecte>Une session IMAP utilise des commandes et des réponses différentes, mais est
très similaires.Pour tirer parti de POP3 ou IMAP vous avez besoin d'un client de
courrier à distance pour retirer votre courrier. Certains lecteurs de courrier
offrent nativement ce genre de fonctionnalités. C'est le cas de
Netscape Messenger qui permet d'utiliser POP et IMAP.Le principal inconvénient des lecteurs de courrier implémentant ce genre de fonctionnalités est
que vous devez explicitement dire à votre lecteur de retirer votre courrier sur le
serveur ; vous ne pourrez pas, par exemple, être averti par xbiff(1) comme vous
le seriez si le courrier était local ou distribué par un serveur SMTP. De plus,
bien sûr, tous les MUA n'implémentent pas POP ou IMAP, et vous devrez vous
rabattre sur d'autres fonctionnalités.Votre distribution contient probablement un programme appelé . Il a été écrit
spécialement pour dialoguer avec des serveurs de courrier distant, récupérer
le courrier, et le distribuer dans votre répertoire de réception de courrier, en
dialoguant avec votre serveur SMTP.Mis à part si vous avez besoin de laisser vos courriers sur le serveur (par exemple
parce que vous changez souvent de machine) fetchmail est probablement une
solution meilleure que n'importe quelle lecteur de courrier intégrant POP ou IMAP. Fetchmail peut
se lancer en arrière plan et récupérer votre courrier périodiquement, et votre
xbiff(1) ou tout autre signaleur de courrier marchera comme si tout se
passait par SMTP. De plus, fetchmail est beaucoup plus tolérant que les lecteurs
de courrier envers les différents particularismes et non respect des standards
des serveurs de messagerie, et il gère mieux les erreurs.Voici un diagramme schématisant les deux cas (avec et sans fetchmail) : +--------+ +--------+
+-------+ compose | | appelle | |
| Alice |--------->| MUA |--------->| MTA |:::>:::::
+-------+ |appelant| |appelant| :: sur la
+--------+ +--------+ :: machine
:: appelante
SMTP ::
::::::::::::::::::::::::::::<::::::::::::::::::::::::::::
::
.::.......................................................................
::
:: +---------+ +-----+ +---------+
:: | | appelle | | distribue à |boîte du |
::::>| MTA |--------->| LDA |============>| serveur |::::>::::
|recevant | | | | de Bob | :: sur le
+---------+ +-----+ +---------+ :: serveur de
:: courrier
POP ou IMAP ::
::::::::::::::::::::::::::::<:::::::::::::::::::::::::::::::::::::
::
.::........................................................................
::
:: +-----------+
:: | |
:::::::>::::::::::::| fetchmail |:::::::: sur la
:: | | :: machine
:: +-----------+ :: recevante,
:: :: avec fetchmail
:: ::::::::::::::::<:::::::::::::::::::
:: ::
:: :: +---------+ +-----+ +-------+
:: :: | | appelle | | distribue à | Boîte |
:: ::::>| MTA |--------->| LDA |===============>| de |
:: |recevant | | | | Bob |
:: +---------+ +-----+ +-------+
:: | |
:: | |
:: +----------------<-------------+ |
:: | |
:: +-----------+ +--------+ |
:: | signaleur | | MUA de |<--------+
:: | de Bob | | Bob |
:: +-----------+ +--------+
:: | |
.::........................................................................
:: . | |
:: sans . | |
:: fetchmail . | |
:: . | +-----+ |
:: +----------+ . +----->| |<----+
:: | MUA | . | Bob |
:::::| POP/IMAP |----.--------->| |
| de Bob | . +-----+
+----------+ .